github.com/cloudwan/edgelq-sdk@v1.15.4/audit/resources/v1/common/common.pb.fieldmask.go (about)

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/audit/proto/v1/common.proto
     3  // DO NOT EDIT!!!
     4  
     5  package common
     6  
     7  import (
     8  	"encoding/json"
     9  	"strings"
    10  
    11  	"google.golang.org/grpc/codes"
    12  	"google.golang.org/grpc/status"
    13  	"google.golang.org/protobuf/proto"
    14  	preflect "google.golang.org/protobuf/reflect/protoreflect"
    15  	googlefieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
    16  
    17  	gotenobject "github.com/cloudwan/goten-sdk/runtime/object"
    18  )
    19  
    20  // proto imports
    21  import (
    22  	anypb "google.golang.org/protobuf/types/known/anypb"
    23  	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
    24  )
    25  
    26  // ensure the imports are used
    27  var (
    28  	_ = new(json.Marshaler)
    29  	_ = strings.Builder{}
    30  
    31  	_ = codes.NotFound
    32  	_ = status.Status{}
    33  	_ = new(proto.Message)
    34  	_ = new(preflect.Message)
    35  	_ = googlefieldmaskpb.FieldMask{}
    36  
    37  	_ = new(gotenobject.FieldMask)
    38  )
    39  
    40  // make sure we're using proto imports
    41  var (
    42  	_ = &anypb.Any{}
    43  	_ = &timestamppb.Timestamp{}
    44  )
    45  
    46  type Authentication_FieldMask struct {
    47  	Paths []Authentication_FieldPath
    48  }
    49  
    50  func FullAuthentication_FieldMask() *Authentication_FieldMask {
    51  	res := &Authentication_FieldMask{}
    52  	res.Paths = append(res.Paths, &Authentication_FieldTerminalPath{selector: Authentication_FieldPathSelectorPrincipal})
    53  	res.Paths = append(res.Paths, &Authentication_FieldTerminalPath{selector: Authentication_FieldPathSelectorPrincipalType})
    54  	return res
    55  }
    56  
    57  func (fieldMask *Authentication_FieldMask) String() string {
    58  	if fieldMask == nil {
    59  		return "<nil>"
    60  	}
    61  	pathsStr := make([]string, 0, len(fieldMask.Paths))
    62  	for _, path := range fieldMask.Paths {
    63  		pathsStr = append(pathsStr, path.String())
    64  	}
    65  	return strings.Join(pathsStr, ", ")
    66  }
    67  
    68  func (fieldMask *Authentication_FieldMask) IsFull() bool {
    69  	if fieldMask == nil {
    70  		return false
    71  	}
    72  	presentSelectors := make([]bool, 2)
    73  	for _, path := range fieldMask.Paths {
    74  		if asFinal, ok := path.(*Authentication_FieldTerminalPath); ok {
    75  			presentSelectors[int(asFinal.selector)] = true
    76  		}
    77  	}
    78  	for _, flag := range presentSelectors {
    79  		if !flag {
    80  			return false
    81  		}
    82  	}
    83  	return true
    84  }
    85  
    86  func (fieldMask *Authentication_FieldMask) ProtoReflect() preflect.Message {
    87  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
    88  		return ParseAuthentication_FieldPath(raw)
    89  	})
    90  }
    91  
    92  func (fieldMask *Authentication_FieldMask) ProtoMessage() {}
    93  
    94  func (fieldMask *Authentication_FieldMask) Reset() {
    95  	if fieldMask != nil {
    96  		fieldMask.Paths = nil
    97  	}
    98  }
    99  
   100  func (fieldMask *Authentication_FieldMask) Subtract(other *Authentication_FieldMask) *Authentication_FieldMask {
   101  	result := &Authentication_FieldMask{}
   102  	removedSelectors := make([]bool, 2)
   103  
   104  	for _, path := range other.GetPaths() {
   105  		switch tp := path.(type) {
   106  		case *Authentication_FieldTerminalPath:
   107  			removedSelectors[int(tp.selector)] = true
   108  		}
   109  	}
   110  	for _, path := range fieldMask.GetPaths() {
   111  		if !removedSelectors[int(path.Selector())] {
   112  			result.Paths = append(result.Paths, path)
   113  		}
   114  	}
   115  
   116  	if len(result.Paths) == 0 {
   117  		return nil
   118  	}
   119  	return result
   120  }
   121  
   122  func (fieldMask *Authentication_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
   123  	return fieldMask.Subtract(other.(*Authentication_FieldMask))
   124  }
   125  
   126  // FilterInputFields generates copy of field paths with output_only field paths removed
   127  func (fieldMask *Authentication_FieldMask) FilterInputFields() *Authentication_FieldMask {
   128  	result := &Authentication_FieldMask{}
   129  	result.Paths = append(result.Paths, fieldMask.Paths...)
   130  	return result
   131  }
   132  
   133  // ToFieldMask is used for proto conversions
   134  func (fieldMask *Authentication_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
   135  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   136  	for _, path := range fieldMask.Paths {
   137  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
   138  	}
   139  	return protoFieldMask
   140  }
   141  
   142  func (fieldMask *Authentication_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
   143  	if fieldMask == nil {
   144  		return status.Error(codes.Internal, "target field mask is nil")
   145  	}
   146  	fieldMask.Paths = make([]Authentication_FieldPath, 0, len(protoFieldMask.Paths))
   147  	for _, strPath := range protoFieldMask.Paths {
   148  		path, err := ParseAuthentication_FieldPath(strPath)
   149  		if err != nil {
   150  			return err
   151  		}
   152  		fieldMask.Paths = append(fieldMask.Paths, path)
   153  	}
   154  	return nil
   155  }
   156  
   157  // implement methods required by customType
   158  func (fieldMask Authentication_FieldMask) Marshal() ([]byte, error) {
   159  	protoFieldMask := fieldMask.ToProtoFieldMask()
   160  	return proto.Marshal(protoFieldMask)
   161  }
   162  
   163  func (fieldMask *Authentication_FieldMask) Unmarshal(data []byte) error {
   164  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   165  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
   166  		return err
   167  	}
   168  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   169  		return err
   170  	}
   171  	return nil
   172  }
   173  
   174  func (fieldMask *Authentication_FieldMask) Size() int {
   175  	return proto.Size(fieldMask.ToProtoFieldMask())
   176  }
   177  
   178  func (fieldMask Authentication_FieldMask) MarshalJSON() ([]byte, error) {
   179  	return json.Marshal(fieldMask.ToProtoFieldMask())
   180  }
   181  
   182  func (fieldMask *Authentication_FieldMask) UnmarshalJSON(data []byte) error {
   183  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   184  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
   185  		return err
   186  	}
   187  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   188  		return err
   189  	}
   190  	return nil
   191  }
   192  
   193  func (fieldMask *Authentication_FieldMask) AppendPath(path Authentication_FieldPath) {
   194  	fieldMask.Paths = append(fieldMask.Paths, path)
   195  }
   196  
   197  func (fieldMask *Authentication_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
   198  	fieldMask.Paths = append(fieldMask.Paths, path.(Authentication_FieldPath))
   199  }
   200  
   201  func (fieldMask *Authentication_FieldMask) GetPaths() []Authentication_FieldPath {
   202  	if fieldMask == nil {
   203  		return nil
   204  	}
   205  	return fieldMask.Paths
   206  }
   207  
   208  func (fieldMask *Authentication_FieldMask) GetRawPaths() []gotenobject.FieldPath {
   209  	if fieldMask == nil {
   210  		return nil
   211  	}
   212  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
   213  	for _, path := range fieldMask.Paths {
   214  		rawPaths = append(rawPaths, path)
   215  	}
   216  	return rawPaths
   217  }
   218  
   219  func (fieldMask *Authentication_FieldMask) SetFromCliFlag(raw string) error {
   220  	path, err := ParseAuthentication_FieldPath(raw)
   221  	if err != nil {
   222  		return err
   223  	}
   224  	fieldMask.Paths = append(fieldMask.Paths, path)
   225  	return nil
   226  }
   227  
   228  func (fieldMask *Authentication_FieldMask) Set(target, source *Authentication) {
   229  	for _, path := range fieldMask.Paths {
   230  		val, _ := path.GetSingle(source)
   231  		// if val is nil, then field does not exist in source, skip
   232  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
   233  		if val != nil {
   234  			path.WithIValue(val).SetTo(&target)
   235  		}
   236  	}
   237  }
   238  
   239  func (fieldMask *Authentication_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
   240  	fieldMask.Set(target.(*Authentication), source.(*Authentication))
   241  }
   242  
   243  func (fieldMask *Authentication_FieldMask) Project(source *Authentication) *Authentication {
   244  	if source == nil {
   245  		return nil
   246  	}
   247  	if fieldMask == nil {
   248  		return source
   249  	}
   250  	result := &Authentication{}
   251  
   252  	for _, p := range fieldMask.Paths {
   253  		switch tp := p.(type) {
   254  		case *Authentication_FieldTerminalPath:
   255  			switch tp.selector {
   256  			case Authentication_FieldPathSelectorPrincipal:
   257  				result.Principal = source.Principal
   258  			case Authentication_FieldPathSelectorPrincipalType:
   259  				result.PrincipalType = source.PrincipalType
   260  			}
   261  		}
   262  	}
   263  	return result
   264  }
   265  
   266  func (fieldMask *Authentication_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
   267  	return fieldMask.Project(source.(*Authentication))
   268  }
   269  
   270  func (fieldMask *Authentication_FieldMask) PathsCount() int {
   271  	if fieldMask == nil {
   272  		return 0
   273  	}
   274  	return len(fieldMask.Paths)
   275  }
   276  
   277  type Authorization_FieldMask struct {
   278  	Paths []Authorization_FieldPath
   279  }
   280  
   281  func FullAuthorization_FieldMask() *Authorization_FieldMask {
   282  	res := &Authorization_FieldMask{}
   283  	res.Paths = append(res.Paths, &Authorization_FieldTerminalPath{selector: Authorization_FieldPathSelectorGrantedPermissions})
   284  	res.Paths = append(res.Paths, &Authorization_FieldTerminalPath{selector: Authorization_FieldPathSelectorDeniedPermissions})
   285  	return res
   286  }
   287  
   288  func (fieldMask *Authorization_FieldMask) String() string {
   289  	if fieldMask == nil {
   290  		return "<nil>"
   291  	}
   292  	pathsStr := make([]string, 0, len(fieldMask.Paths))
   293  	for _, path := range fieldMask.Paths {
   294  		pathsStr = append(pathsStr, path.String())
   295  	}
   296  	return strings.Join(pathsStr, ", ")
   297  }
   298  
   299  func (fieldMask *Authorization_FieldMask) IsFull() bool {
   300  	if fieldMask == nil {
   301  		return false
   302  	}
   303  	presentSelectors := make([]bool, 2)
   304  	for _, path := range fieldMask.Paths {
   305  		if asFinal, ok := path.(*Authorization_FieldTerminalPath); ok {
   306  			presentSelectors[int(asFinal.selector)] = true
   307  		}
   308  	}
   309  	for _, flag := range presentSelectors {
   310  		if !flag {
   311  			return false
   312  		}
   313  	}
   314  	return true
   315  }
   316  
   317  func (fieldMask *Authorization_FieldMask) ProtoReflect() preflect.Message {
   318  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
   319  		return ParseAuthorization_FieldPath(raw)
   320  	})
   321  }
   322  
   323  func (fieldMask *Authorization_FieldMask) ProtoMessage() {}
   324  
   325  func (fieldMask *Authorization_FieldMask) Reset() {
   326  	if fieldMask != nil {
   327  		fieldMask.Paths = nil
   328  	}
   329  }
   330  
   331  func (fieldMask *Authorization_FieldMask) Subtract(other *Authorization_FieldMask) *Authorization_FieldMask {
   332  	result := &Authorization_FieldMask{}
   333  	removedSelectors := make([]bool, 2)
   334  
   335  	for _, path := range other.GetPaths() {
   336  		switch tp := path.(type) {
   337  		case *Authorization_FieldTerminalPath:
   338  			removedSelectors[int(tp.selector)] = true
   339  		}
   340  	}
   341  	for _, path := range fieldMask.GetPaths() {
   342  		if !removedSelectors[int(path.Selector())] {
   343  			result.Paths = append(result.Paths, path)
   344  		}
   345  	}
   346  
   347  	if len(result.Paths) == 0 {
   348  		return nil
   349  	}
   350  	return result
   351  }
   352  
   353  func (fieldMask *Authorization_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
   354  	return fieldMask.Subtract(other.(*Authorization_FieldMask))
   355  }
   356  
   357  // FilterInputFields generates copy of field paths with output_only field paths removed
   358  func (fieldMask *Authorization_FieldMask) FilterInputFields() *Authorization_FieldMask {
   359  	result := &Authorization_FieldMask{}
   360  	result.Paths = append(result.Paths, fieldMask.Paths...)
   361  	return result
   362  }
   363  
   364  // ToFieldMask is used for proto conversions
   365  func (fieldMask *Authorization_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
   366  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   367  	for _, path := range fieldMask.Paths {
   368  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
   369  	}
   370  	return protoFieldMask
   371  }
   372  
   373  func (fieldMask *Authorization_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
   374  	if fieldMask == nil {
   375  		return status.Error(codes.Internal, "target field mask is nil")
   376  	}
   377  	fieldMask.Paths = make([]Authorization_FieldPath, 0, len(protoFieldMask.Paths))
   378  	for _, strPath := range protoFieldMask.Paths {
   379  		path, err := ParseAuthorization_FieldPath(strPath)
   380  		if err != nil {
   381  			return err
   382  		}
   383  		fieldMask.Paths = append(fieldMask.Paths, path)
   384  	}
   385  	return nil
   386  }
   387  
   388  // implement methods required by customType
   389  func (fieldMask Authorization_FieldMask) Marshal() ([]byte, error) {
   390  	protoFieldMask := fieldMask.ToProtoFieldMask()
   391  	return proto.Marshal(protoFieldMask)
   392  }
   393  
   394  func (fieldMask *Authorization_FieldMask) Unmarshal(data []byte) error {
   395  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   396  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
   397  		return err
   398  	}
   399  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   400  		return err
   401  	}
   402  	return nil
   403  }
   404  
   405  func (fieldMask *Authorization_FieldMask) Size() int {
   406  	return proto.Size(fieldMask.ToProtoFieldMask())
   407  }
   408  
   409  func (fieldMask Authorization_FieldMask) MarshalJSON() ([]byte, error) {
   410  	return json.Marshal(fieldMask.ToProtoFieldMask())
   411  }
   412  
   413  func (fieldMask *Authorization_FieldMask) UnmarshalJSON(data []byte) error {
   414  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   415  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
   416  		return err
   417  	}
   418  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   419  		return err
   420  	}
   421  	return nil
   422  }
   423  
   424  func (fieldMask *Authorization_FieldMask) AppendPath(path Authorization_FieldPath) {
   425  	fieldMask.Paths = append(fieldMask.Paths, path)
   426  }
   427  
   428  func (fieldMask *Authorization_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
   429  	fieldMask.Paths = append(fieldMask.Paths, path.(Authorization_FieldPath))
   430  }
   431  
   432  func (fieldMask *Authorization_FieldMask) GetPaths() []Authorization_FieldPath {
   433  	if fieldMask == nil {
   434  		return nil
   435  	}
   436  	return fieldMask.Paths
   437  }
   438  
   439  func (fieldMask *Authorization_FieldMask) GetRawPaths() []gotenobject.FieldPath {
   440  	if fieldMask == nil {
   441  		return nil
   442  	}
   443  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
   444  	for _, path := range fieldMask.Paths {
   445  		rawPaths = append(rawPaths, path)
   446  	}
   447  	return rawPaths
   448  }
   449  
   450  func (fieldMask *Authorization_FieldMask) SetFromCliFlag(raw string) error {
   451  	path, err := ParseAuthorization_FieldPath(raw)
   452  	if err != nil {
   453  		return err
   454  	}
   455  	fieldMask.Paths = append(fieldMask.Paths, path)
   456  	return nil
   457  }
   458  
   459  func (fieldMask *Authorization_FieldMask) Set(target, source *Authorization) {
   460  	for _, path := range fieldMask.Paths {
   461  		val, _ := path.GetSingle(source)
   462  		// if val is nil, then field does not exist in source, skip
   463  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
   464  		if val != nil {
   465  			path.WithIValue(val).SetTo(&target)
   466  		}
   467  	}
   468  }
   469  
   470  func (fieldMask *Authorization_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
   471  	fieldMask.Set(target.(*Authorization), source.(*Authorization))
   472  }
   473  
   474  func (fieldMask *Authorization_FieldMask) Project(source *Authorization) *Authorization {
   475  	if source == nil {
   476  		return nil
   477  	}
   478  	if fieldMask == nil {
   479  		return source
   480  	}
   481  	result := &Authorization{}
   482  
   483  	for _, p := range fieldMask.Paths {
   484  		switch tp := p.(type) {
   485  		case *Authorization_FieldTerminalPath:
   486  			switch tp.selector {
   487  			case Authorization_FieldPathSelectorGrantedPermissions:
   488  				result.GrantedPermissions = source.GrantedPermissions
   489  			case Authorization_FieldPathSelectorDeniedPermissions:
   490  				result.DeniedPermissions = source.DeniedPermissions
   491  			}
   492  		}
   493  	}
   494  	return result
   495  }
   496  
   497  func (fieldMask *Authorization_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
   498  	return fieldMask.Project(source.(*Authorization))
   499  }
   500  
   501  func (fieldMask *Authorization_FieldMask) PathsCount() int {
   502  	if fieldMask == nil {
   503  		return 0
   504  	}
   505  	return len(fieldMask.Paths)
   506  }
   507  
   508  type ServiceData_FieldMask struct {
   509  	Paths []ServiceData_FieldPath
   510  }
   511  
   512  func FullServiceData_FieldMask() *ServiceData_FieldMask {
   513  	res := &ServiceData_FieldMask{}
   514  	res.Paths = append(res.Paths, &ServiceData_FieldTerminalPath{selector: ServiceData_FieldPathSelectorName})
   515  	res.Paths = append(res.Paths, &ServiceData_FieldTerminalPath{selector: ServiceData_FieldPathSelectorRegionId})
   516  	res.Paths = append(res.Paths, &ServiceData_FieldTerminalPath{selector: ServiceData_FieldPathSelectorHostname})
   517  	return res
   518  }
   519  
   520  func (fieldMask *ServiceData_FieldMask) String() string {
   521  	if fieldMask == nil {
   522  		return "<nil>"
   523  	}
   524  	pathsStr := make([]string, 0, len(fieldMask.Paths))
   525  	for _, path := range fieldMask.Paths {
   526  		pathsStr = append(pathsStr, path.String())
   527  	}
   528  	return strings.Join(pathsStr, ", ")
   529  }
   530  
   531  func (fieldMask *ServiceData_FieldMask) IsFull() bool {
   532  	if fieldMask == nil {
   533  		return false
   534  	}
   535  	presentSelectors := make([]bool, 3)
   536  	for _, path := range fieldMask.Paths {
   537  		if asFinal, ok := path.(*ServiceData_FieldTerminalPath); ok {
   538  			presentSelectors[int(asFinal.selector)] = true
   539  		}
   540  	}
   541  	for _, flag := range presentSelectors {
   542  		if !flag {
   543  			return false
   544  		}
   545  	}
   546  	return true
   547  }
   548  
   549  func (fieldMask *ServiceData_FieldMask) ProtoReflect() preflect.Message {
   550  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
   551  		return ParseServiceData_FieldPath(raw)
   552  	})
   553  }
   554  
   555  func (fieldMask *ServiceData_FieldMask) ProtoMessage() {}
   556  
   557  func (fieldMask *ServiceData_FieldMask) Reset() {
   558  	if fieldMask != nil {
   559  		fieldMask.Paths = nil
   560  	}
   561  }
   562  
   563  func (fieldMask *ServiceData_FieldMask) Subtract(other *ServiceData_FieldMask) *ServiceData_FieldMask {
   564  	result := &ServiceData_FieldMask{}
   565  	removedSelectors := make([]bool, 3)
   566  
   567  	for _, path := range other.GetPaths() {
   568  		switch tp := path.(type) {
   569  		case *ServiceData_FieldTerminalPath:
   570  			removedSelectors[int(tp.selector)] = true
   571  		}
   572  	}
   573  	for _, path := range fieldMask.GetPaths() {
   574  		if !removedSelectors[int(path.Selector())] {
   575  			result.Paths = append(result.Paths, path)
   576  		}
   577  	}
   578  
   579  	if len(result.Paths) == 0 {
   580  		return nil
   581  	}
   582  	return result
   583  }
   584  
   585  func (fieldMask *ServiceData_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
   586  	return fieldMask.Subtract(other.(*ServiceData_FieldMask))
   587  }
   588  
   589  // FilterInputFields generates copy of field paths with output_only field paths removed
   590  func (fieldMask *ServiceData_FieldMask) FilterInputFields() *ServiceData_FieldMask {
   591  	result := &ServiceData_FieldMask{}
   592  	result.Paths = append(result.Paths, fieldMask.Paths...)
   593  	return result
   594  }
   595  
   596  // ToFieldMask is used for proto conversions
   597  func (fieldMask *ServiceData_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
   598  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   599  	for _, path := range fieldMask.Paths {
   600  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
   601  	}
   602  	return protoFieldMask
   603  }
   604  
   605  func (fieldMask *ServiceData_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
   606  	if fieldMask == nil {
   607  		return status.Error(codes.Internal, "target field mask is nil")
   608  	}
   609  	fieldMask.Paths = make([]ServiceData_FieldPath, 0, len(protoFieldMask.Paths))
   610  	for _, strPath := range protoFieldMask.Paths {
   611  		path, err := ParseServiceData_FieldPath(strPath)
   612  		if err != nil {
   613  			return err
   614  		}
   615  		fieldMask.Paths = append(fieldMask.Paths, path)
   616  	}
   617  	return nil
   618  }
   619  
   620  // implement methods required by customType
   621  func (fieldMask ServiceData_FieldMask) Marshal() ([]byte, error) {
   622  	protoFieldMask := fieldMask.ToProtoFieldMask()
   623  	return proto.Marshal(protoFieldMask)
   624  }
   625  
   626  func (fieldMask *ServiceData_FieldMask) Unmarshal(data []byte) error {
   627  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   628  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
   629  		return err
   630  	}
   631  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   632  		return err
   633  	}
   634  	return nil
   635  }
   636  
   637  func (fieldMask *ServiceData_FieldMask) Size() int {
   638  	return proto.Size(fieldMask.ToProtoFieldMask())
   639  }
   640  
   641  func (fieldMask ServiceData_FieldMask) MarshalJSON() ([]byte, error) {
   642  	return json.Marshal(fieldMask.ToProtoFieldMask())
   643  }
   644  
   645  func (fieldMask *ServiceData_FieldMask) UnmarshalJSON(data []byte) error {
   646  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   647  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
   648  		return err
   649  	}
   650  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   651  		return err
   652  	}
   653  	return nil
   654  }
   655  
   656  func (fieldMask *ServiceData_FieldMask) AppendPath(path ServiceData_FieldPath) {
   657  	fieldMask.Paths = append(fieldMask.Paths, path)
   658  }
   659  
   660  func (fieldMask *ServiceData_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
   661  	fieldMask.Paths = append(fieldMask.Paths, path.(ServiceData_FieldPath))
   662  }
   663  
   664  func (fieldMask *ServiceData_FieldMask) GetPaths() []ServiceData_FieldPath {
   665  	if fieldMask == nil {
   666  		return nil
   667  	}
   668  	return fieldMask.Paths
   669  }
   670  
   671  func (fieldMask *ServiceData_FieldMask) GetRawPaths() []gotenobject.FieldPath {
   672  	if fieldMask == nil {
   673  		return nil
   674  	}
   675  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
   676  	for _, path := range fieldMask.Paths {
   677  		rawPaths = append(rawPaths, path)
   678  	}
   679  	return rawPaths
   680  }
   681  
   682  func (fieldMask *ServiceData_FieldMask) SetFromCliFlag(raw string) error {
   683  	path, err := ParseServiceData_FieldPath(raw)
   684  	if err != nil {
   685  		return err
   686  	}
   687  	fieldMask.Paths = append(fieldMask.Paths, path)
   688  	return nil
   689  }
   690  
   691  func (fieldMask *ServiceData_FieldMask) Set(target, source *ServiceData) {
   692  	for _, path := range fieldMask.Paths {
   693  		val, _ := path.GetSingle(source)
   694  		// if val is nil, then field does not exist in source, skip
   695  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
   696  		if val != nil {
   697  			path.WithIValue(val).SetTo(&target)
   698  		}
   699  	}
   700  }
   701  
   702  func (fieldMask *ServiceData_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
   703  	fieldMask.Set(target.(*ServiceData), source.(*ServiceData))
   704  }
   705  
   706  func (fieldMask *ServiceData_FieldMask) Project(source *ServiceData) *ServiceData {
   707  	if source == nil {
   708  		return nil
   709  	}
   710  	if fieldMask == nil {
   711  		return source
   712  	}
   713  	result := &ServiceData{}
   714  
   715  	for _, p := range fieldMask.Paths {
   716  		switch tp := p.(type) {
   717  		case *ServiceData_FieldTerminalPath:
   718  			switch tp.selector {
   719  			case ServiceData_FieldPathSelectorName:
   720  				result.Name = source.Name
   721  			case ServiceData_FieldPathSelectorRegionId:
   722  				result.RegionId = source.RegionId
   723  			case ServiceData_FieldPathSelectorHostname:
   724  				result.Hostname = source.Hostname
   725  			}
   726  		}
   727  	}
   728  	return result
   729  }
   730  
   731  func (fieldMask *ServiceData_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
   732  	return fieldMask.Project(source.(*ServiceData))
   733  }
   734  
   735  func (fieldMask *ServiceData_FieldMask) PathsCount() int {
   736  	if fieldMask == nil {
   737  		return 0
   738  	}
   739  	return len(fieldMask.Paths)
   740  }
   741  
   742  type ObjectState_FieldMask struct {
   743  	Paths []ObjectState_FieldPath
   744  }
   745  
   746  func FullObjectState_FieldMask() *ObjectState_FieldMask {
   747  	res := &ObjectState_FieldMask{}
   748  	res.Paths = append(res.Paths, &ObjectState_FieldTerminalPath{selector: ObjectState_FieldPathSelectorData})
   749  	res.Paths = append(res.Paths, &ObjectState_FieldTerminalPath{selector: ObjectState_FieldPathSelectorLabels})
   750  	return res
   751  }
   752  
   753  func (fieldMask *ObjectState_FieldMask) String() string {
   754  	if fieldMask == nil {
   755  		return "<nil>"
   756  	}
   757  	pathsStr := make([]string, 0, len(fieldMask.Paths))
   758  	for _, path := range fieldMask.Paths {
   759  		pathsStr = append(pathsStr, path.String())
   760  	}
   761  	return strings.Join(pathsStr, ", ")
   762  }
   763  
   764  func (fieldMask *ObjectState_FieldMask) IsFull() bool {
   765  	if fieldMask == nil {
   766  		return false
   767  	}
   768  	presentSelectors := make([]bool, 2)
   769  	for _, path := range fieldMask.Paths {
   770  		if asFinal, ok := path.(*ObjectState_FieldTerminalPath); ok {
   771  			presentSelectors[int(asFinal.selector)] = true
   772  		}
   773  	}
   774  	for _, flag := range presentSelectors {
   775  		if !flag {
   776  			return false
   777  		}
   778  	}
   779  	return true
   780  }
   781  
   782  func (fieldMask *ObjectState_FieldMask) ProtoReflect() preflect.Message {
   783  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
   784  		return ParseObjectState_FieldPath(raw)
   785  	})
   786  }
   787  
   788  func (fieldMask *ObjectState_FieldMask) ProtoMessage() {}
   789  
   790  func (fieldMask *ObjectState_FieldMask) Reset() {
   791  	if fieldMask != nil {
   792  		fieldMask.Paths = nil
   793  	}
   794  }
   795  
   796  func (fieldMask *ObjectState_FieldMask) Subtract(other *ObjectState_FieldMask) *ObjectState_FieldMask {
   797  	result := &ObjectState_FieldMask{}
   798  	removedSelectors := make([]bool, 2)
   799  
   800  	for _, path := range other.GetPaths() {
   801  		switch tp := path.(type) {
   802  		case *ObjectState_FieldTerminalPath:
   803  			removedSelectors[int(tp.selector)] = true
   804  		}
   805  	}
   806  	for _, path := range fieldMask.GetPaths() {
   807  		if !removedSelectors[int(path.Selector())] {
   808  			result.Paths = append(result.Paths, path)
   809  		}
   810  	}
   811  
   812  	if len(result.Paths) == 0 {
   813  		return nil
   814  	}
   815  	return result
   816  }
   817  
   818  func (fieldMask *ObjectState_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
   819  	return fieldMask.Subtract(other.(*ObjectState_FieldMask))
   820  }
   821  
   822  // FilterInputFields generates copy of field paths with output_only field paths removed
   823  func (fieldMask *ObjectState_FieldMask) FilterInputFields() *ObjectState_FieldMask {
   824  	result := &ObjectState_FieldMask{}
   825  	result.Paths = append(result.Paths, fieldMask.Paths...)
   826  	return result
   827  }
   828  
   829  // ToFieldMask is used for proto conversions
   830  func (fieldMask *ObjectState_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
   831  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   832  	for _, path := range fieldMask.Paths {
   833  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
   834  	}
   835  	return protoFieldMask
   836  }
   837  
   838  func (fieldMask *ObjectState_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
   839  	if fieldMask == nil {
   840  		return status.Error(codes.Internal, "target field mask is nil")
   841  	}
   842  	fieldMask.Paths = make([]ObjectState_FieldPath, 0, len(protoFieldMask.Paths))
   843  	for _, strPath := range protoFieldMask.Paths {
   844  		path, err := ParseObjectState_FieldPath(strPath)
   845  		if err != nil {
   846  			return err
   847  		}
   848  		fieldMask.Paths = append(fieldMask.Paths, path)
   849  	}
   850  	return nil
   851  }
   852  
   853  // implement methods required by customType
   854  func (fieldMask ObjectState_FieldMask) Marshal() ([]byte, error) {
   855  	protoFieldMask := fieldMask.ToProtoFieldMask()
   856  	return proto.Marshal(protoFieldMask)
   857  }
   858  
   859  func (fieldMask *ObjectState_FieldMask) Unmarshal(data []byte) error {
   860  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   861  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
   862  		return err
   863  	}
   864  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   865  		return err
   866  	}
   867  	return nil
   868  }
   869  
   870  func (fieldMask *ObjectState_FieldMask) Size() int {
   871  	return proto.Size(fieldMask.ToProtoFieldMask())
   872  }
   873  
   874  func (fieldMask ObjectState_FieldMask) MarshalJSON() ([]byte, error) {
   875  	return json.Marshal(fieldMask.ToProtoFieldMask())
   876  }
   877  
   878  func (fieldMask *ObjectState_FieldMask) UnmarshalJSON(data []byte) error {
   879  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   880  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
   881  		return err
   882  	}
   883  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   884  		return err
   885  	}
   886  	return nil
   887  }
   888  
   889  func (fieldMask *ObjectState_FieldMask) AppendPath(path ObjectState_FieldPath) {
   890  	fieldMask.Paths = append(fieldMask.Paths, path)
   891  }
   892  
   893  func (fieldMask *ObjectState_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
   894  	fieldMask.Paths = append(fieldMask.Paths, path.(ObjectState_FieldPath))
   895  }
   896  
   897  func (fieldMask *ObjectState_FieldMask) GetPaths() []ObjectState_FieldPath {
   898  	if fieldMask == nil {
   899  		return nil
   900  	}
   901  	return fieldMask.Paths
   902  }
   903  
   904  func (fieldMask *ObjectState_FieldMask) GetRawPaths() []gotenobject.FieldPath {
   905  	if fieldMask == nil {
   906  		return nil
   907  	}
   908  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
   909  	for _, path := range fieldMask.Paths {
   910  		rawPaths = append(rawPaths, path)
   911  	}
   912  	return rawPaths
   913  }
   914  
   915  func (fieldMask *ObjectState_FieldMask) SetFromCliFlag(raw string) error {
   916  	path, err := ParseObjectState_FieldPath(raw)
   917  	if err != nil {
   918  		return err
   919  	}
   920  	fieldMask.Paths = append(fieldMask.Paths, path)
   921  	return nil
   922  }
   923  
   924  func (fieldMask *ObjectState_FieldMask) Set(target, source *ObjectState) {
   925  	for _, path := range fieldMask.Paths {
   926  		val, _ := path.GetSingle(source)
   927  		// if val is nil, then field does not exist in source, skip
   928  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
   929  		if val != nil {
   930  			path.WithIValue(val).SetTo(&target)
   931  		}
   932  	}
   933  }
   934  
   935  func (fieldMask *ObjectState_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
   936  	fieldMask.Set(target.(*ObjectState), source.(*ObjectState))
   937  }
   938  
   939  func (fieldMask *ObjectState_FieldMask) Project(source *ObjectState) *ObjectState {
   940  	if source == nil {
   941  		return nil
   942  	}
   943  	if fieldMask == nil {
   944  		return source
   945  	}
   946  	result := &ObjectState{}
   947  	var labelsMapKeys []string
   948  	wholeLabelsAccepted := false
   949  
   950  	for _, p := range fieldMask.Paths {
   951  		switch tp := p.(type) {
   952  		case *ObjectState_FieldTerminalPath:
   953  			switch tp.selector {
   954  			case ObjectState_FieldPathSelectorData:
   955  				result.Data = source.Data
   956  			case ObjectState_FieldPathSelectorLabels:
   957  				result.Labels = source.Labels
   958  				wholeLabelsAccepted = true
   959  			}
   960  		case *ObjectState_FieldPathMap:
   961  			switch tp.selector {
   962  			case ObjectState_FieldPathSelectorLabels:
   963  				labelsMapKeys = append(labelsMapKeys, tp.key)
   964  			}
   965  		}
   966  	}
   967  	if wholeLabelsAccepted == false && len(labelsMapKeys) > 0 && source.GetLabels() != nil {
   968  		copiedMap := map[string]string{}
   969  		sourceMap := source.GetLabels()
   970  		for _, key := range labelsMapKeys {
   971  			copiedMap[key] = sourceMap[key]
   972  		}
   973  		result.Labels = copiedMap
   974  	}
   975  	return result
   976  }
   977  
   978  func (fieldMask *ObjectState_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
   979  	return fieldMask.Project(source.(*ObjectState))
   980  }
   981  
   982  func (fieldMask *ObjectState_FieldMask) PathsCount() int {
   983  	if fieldMask == nil {
   984  		return 0
   985  	}
   986  	return len(fieldMask.Paths)
   987  }
   988  
   989  type LabelDescriptor_FieldMask struct {
   990  	Paths []LabelDescriptor_FieldPath
   991  }
   992  
   993  func FullLabelDescriptor_FieldMask() *LabelDescriptor_FieldMask {
   994  	res := &LabelDescriptor_FieldMask{}
   995  	res.Paths = append(res.Paths, &LabelDescriptor_FieldTerminalPath{selector: LabelDescriptor_FieldPathSelectorKey})
   996  	res.Paths = append(res.Paths, &LabelDescriptor_FieldTerminalPath{selector: LabelDescriptor_FieldPathSelectorVersions})
   997  	return res
   998  }
   999  
  1000  func (fieldMask *LabelDescriptor_FieldMask) String() string {
  1001  	if fieldMask == nil {
  1002  		return "<nil>"
  1003  	}
  1004  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  1005  	for _, path := range fieldMask.Paths {
  1006  		pathsStr = append(pathsStr, path.String())
  1007  	}
  1008  	return strings.Join(pathsStr, ", ")
  1009  }
  1010  
  1011  func (fieldMask *LabelDescriptor_FieldMask) IsFull() bool {
  1012  	if fieldMask == nil {
  1013  		return false
  1014  	}
  1015  	presentSelectors := make([]bool, 2)
  1016  	for _, path := range fieldMask.Paths {
  1017  		if asFinal, ok := path.(*LabelDescriptor_FieldTerminalPath); ok {
  1018  			presentSelectors[int(asFinal.selector)] = true
  1019  		}
  1020  	}
  1021  	for _, flag := range presentSelectors {
  1022  		if !flag {
  1023  			return false
  1024  		}
  1025  	}
  1026  	return true
  1027  }
  1028  
  1029  func (fieldMask *LabelDescriptor_FieldMask) ProtoReflect() preflect.Message {
  1030  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  1031  		return ParseLabelDescriptor_FieldPath(raw)
  1032  	})
  1033  }
  1034  
  1035  func (fieldMask *LabelDescriptor_FieldMask) ProtoMessage() {}
  1036  
  1037  func (fieldMask *LabelDescriptor_FieldMask) Reset() {
  1038  	if fieldMask != nil {
  1039  		fieldMask.Paths = nil
  1040  	}
  1041  }
  1042  
  1043  func (fieldMask *LabelDescriptor_FieldMask) Subtract(other *LabelDescriptor_FieldMask) *LabelDescriptor_FieldMask {
  1044  	result := &LabelDescriptor_FieldMask{}
  1045  	removedSelectors := make([]bool, 2)
  1046  
  1047  	for _, path := range other.GetPaths() {
  1048  		switch tp := path.(type) {
  1049  		case *LabelDescriptor_FieldTerminalPath:
  1050  			removedSelectors[int(tp.selector)] = true
  1051  		}
  1052  	}
  1053  	for _, path := range fieldMask.GetPaths() {
  1054  		if !removedSelectors[int(path.Selector())] {
  1055  			result.Paths = append(result.Paths, path)
  1056  		}
  1057  	}
  1058  
  1059  	if len(result.Paths) == 0 {
  1060  		return nil
  1061  	}
  1062  	return result
  1063  }
  1064  
  1065  func (fieldMask *LabelDescriptor_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  1066  	return fieldMask.Subtract(other.(*LabelDescriptor_FieldMask))
  1067  }
  1068  
  1069  // FilterInputFields generates copy of field paths with output_only field paths removed
  1070  func (fieldMask *LabelDescriptor_FieldMask) FilterInputFields() *LabelDescriptor_FieldMask {
  1071  	result := &LabelDescriptor_FieldMask{}
  1072  	result.Paths = append(result.Paths, fieldMask.Paths...)
  1073  	return result
  1074  }
  1075  
  1076  // ToFieldMask is used for proto conversions
  1077  func (fieldMask *LabelDescriptor_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  1078  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  1079  	for _, path := range fieldMask.Paths {
  1080  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  1081  	}
  1082  	return protoFieldMask
  1083  }
  1084  
  1085  func (fieldMask *LabelDescriptor_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  1086  	if fieldMask == nil {
  1087  		return status.Error(codes.Internal, "target field mask is nil")
  1088  	}
  1089  	fieldMask.Paths = make([]LabelDescriptor_FieldPath, 0, len(protoFieldMask.Paths))
  1090  	for _, strPath := range protoFieldMask.Paths {
  1091  		path, err := ParseLabelDescriptor_FieldPath(strPath)
  1092  		if err != nil {
  1093  			return err
  1094  		}
  1095  		fieldMask.Paths = append(fieldMask.Paths, path)
  1096  	}
  1097  	return nil
  1098  }
  1099  
  1100  // implement methods required by customType
  1101  func (fieldMask LabelDescriptor_FieldMask) Marshal() ([]byte, error) {
  1102  	protoFieldMask := fieldMask.ToProtoFieldMask()
  1103  	return proto.Marshal(protoFieldMask)
  1104  }
  1105  
  1106  func (fieldMask *LabelDescriptor_FieldMask) Unmarshal(data []byte) error {
  1107  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  1108  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  1109  		return err
  1110  	}
  1111  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  1112  		return err
  1113  	}
  1114  	return nil
  1115  }
  1116  
  1117  func (fieldMask *LabelDescriptor_FieldMask) Size() int {
  1118  	return proto.Size(fieldMask.ToProtoFieldMask())
  1119  }
  1120  
  1121  func (fieldMask LabelDescriptor_FieldMask) MarshalJSON() ([]byte, error) {
  1122  	return json.Marshal(fieldMask.ToProtoFieldMask())
  1123  }
  1124  
  1125  func (fieldMask *LabelDescriptor_FieldMask) UnmarshalJSON(data []byte) error {
  1126  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  1127  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  1128  		return err
  1129  	}
  1130  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  1131  		return err
  1132  	}
  1133  	return nil
  1134  }
  1135  
  1136  func (fieldMask *LabelDescriptor_FieldMask) AppendPath(path LabelDescriptor_FieldPath) {
  1137  	fieldMask.Paths = append(fieldMask.Paths, path)
  1138  }
  1139  
  1140  func (fieldMask *LabelDescriptor_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  1141  	fieldMask.Paths = append(fieldMask.Paths, path.(LabelDescriptor_FieldPath))
  1142  }
  1143  
  1144  func (fieldMask *LabelDescriptor_FieldMask) GetPaths() []LabelDescriptor_FieldPath {
  1145  	if fieldMask == nil {
  1146  		return nil
  1147  	}
  1148  	return fieldMask.Paths
  1149  }
  1150  
  1151  func (fieldMask *LabelDescriptor_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  1152  	if fieldMask == nil {
  1153  		return nil
  1154  	}
  1155  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  1156  	for _, path := range fieldMask.Paths {
  1157  		rawPaths = append(rawPaths, path)
  1158  	}
  1159  	return rawPaths
  1160  }
  1161  
  1162  func (fieldMask *LabelDescriptor_FieldMask) SetFromCliFlag(raw string) error {
  1163  	path, err := ParseLabelDescriptor_FieldPath(raw)
  1164  	if err != nil {
  1165  		return err
  1166  	}
  1167  	fieldMask.Paths = append(fieldMask.Paths, path)
  1168  	return nil
  1169  }
  1170  
  1171  func (fieldMask *LabelDescriptor_FieldMask) Set(target, source *LabelDescriptor) {
  1172  	for _, path := range fieldMask.Paths {
  1173  		val, _ := path.GetSingle(source)
  1174  		// if val is nil, then field does not exist in source, skip
  1175  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  1176  		if val != nil {
  1177  			path.WithIValue(val).SetTo(&target)
  1178  		}
  1179  	}
  1180  }
  1181  
  1182  func (fieldMask *LabelDescriptor_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  1183  	fieldMask.Set(target.(*LabelDescriptor), source.(*LabelDescriptor))
  1184  }
  1185  
  1186  func (fieldMask *LabelDescriptor_FieldMask) Project(source *LabelDescriptor) *LabelDescriptor {
  1187  	if source == nil {
  1188  		return nil
  1189  	}
  1190  	if fieldMask == nil {
  1191  		return source
  1192  	}
  1193  	result := &LabelDescriptor{}
  1194  
  1195  	for _, p := range fieldMask.Paths {
  1196  		switch tp := p.(type) {
  1197  		case *LabelDescriptor_FieldTerminalPath:
  1198  			switch tp.selector {
  1199  			case LabelDescriptor_FieldPathSelectorKey:
  1200  				result.Key = source.Key
  1201  			case LabelDescriptor_FieldPathSelectorVersions:
  1202  				result.Versions = source.Versions
  1203  			}
  1204  		}
  1205  	}
  1206  	return result
  1207  }
  1208  
  1209  func (fieldMask *LabelDescriptor_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  1210  	return fieldMask.Project(source.(*LabelDescriptor))
  1211  }
  1212  
  1213  func (fieldMask *LabelDescriptor_FieldMask) PathsCount() int {
  1214  	if fieldMask == nil {
  1215  		return 0
  1216  	}
  1217  	return len(fieldMask.Paths)
  1218  }
  1219  
  1220  type LabelKeySet_FieldMask struct {
  1221  	Paths []LabelKeySet_FieldPath
  1222  }
  1223  
  1224  func FullLabelKeySet_FieldMask() *LabelKeySet_FieldMask {
  1225  	res := &LabelKeySet_FieldMask{}
  1226  	res.Paths = append(res.Paths, &LabelKeySet_FieldTerminalPath{selector: LabelKeySet_FieldPathSelectorLabelKeys})
  1227  	res.Paths = append(res.Paths, &LabelKeySet_FieldTerminalPath{selector: LabelKeySet_FieldPathSelectorVersions})
  1228  	return res
  1229  }
  1230  
  1231  func (fieldMask *LabelKeySet_FieldMask) String() string {
  1232  	if fieldMask == nil {
  1233  		return "<nil>"
  1234  	}
  1235  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  1236  	for _, path := range fieldMask.Paths {
  1237  		pathsStr = append(pathsStr, path.String())
  1238  	}
  1239  	return strings.Join(pathsStr, ", ")
  1240  }
  1241  
  1242  func (fieldMask *LabelKeySet_FieldMask) IsFull() bool {
  1243  	if fieldMask == nil {
  1244  		return false
  1245  	}
  1246  	presentSelectors := make([]bool, 2)
  1247  	for _, path := range fieldMask.Paths {
  1248  		if asFinal, ok := path.(*LabelKeySet_FieldTerminalPath); ok {
  1249  			presentSelectors[int(asFinal.selector)] = true
  1250  		}
  1251  	}
  1252  	for _, flag := range presentSelectors {
  1253  		if !flag {
  1254  			return false
  1255  		}
  1256  	}
  1257  	return true
  1258  }
  1259  
  1260  func (fieldMask *LabelKeySet_FieldMask) ProtoReflect() preflect.Message {
  1261  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  1262  		return ParseLabelKeySet_FieldPath(raw)
  1263  	})
  1264  }
  1265  
  1266  func (fieldMask *LabelKeySet_FieldMask) ProtoMessage() {}
  1267  
  1268  func (fieldMask *LabelKeySet_FieldMask) Reset() {
  1269  	if fieldMask != nil {
  1270  		fieldMask.Paths = nil
  1271  	}
  1272  }
  1273  
  1274  func (fieldMask *LabelKeySet_FieldMask) Subtract(other *LabelKeySet_FieldMask) *LabelKeySet_FieldMask {
  1275  	result := &LabelKeySet_FieldMask{}
  1276  	removedSelectors := make([]bool, 2)
  1277  
  1278  	for _, path := range other.GetPaths() {
  1279  		switch tp := path.(type) {
  1280  		case *LabelKeySet_FieldTerminalPath:
  1281  			removedSelectors[int(tp.selector)] = true
  1282  		}
  1283  	}
  1284  	for _, path := range fieldMask.GetPaths() {
  1285  		if !removedSelectors[int(path.Selector())] {
  1286  			result.Paths = append(result.Paths, path)
  1287  		}
  1288  	}
  1289  
  1290  	if len(result.Paths) == 0 {
  1291  		return nil
  1292  	}
  1293  	return result
  1294  }
  1295  
  1296  func (fieldMask *LabelKeySet_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  1297  	return fieldMask.Subtract(other.(*LabelKeySet_FieldMask))
  1298  }
  1299  
  1300  // FilterInputFields generates copy of field paths with output_only field paths removed
  1301  func (fieldMask *LabelKeySet_FieldMask) FilterInputFields() *LabelKeySet_FieldMask {
  1302  	result := &LabelKeySet_FieldMask{}
  1303  	result.Paths = append(result.Paths, fieldMask.Paths...)
  1304  	return result
  1305  }
  1306  
  1307  // ToFieldMask is used for proto conversions
  1308  func (fieldMask *LabelKeySet_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  1309  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  1310  	for _, path := range fieldMask.Paths {
  1311  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  1312  	}
  1313  	return protoFieldMask
  1314  }
  1315  
  1316  func (fieldMask *LabelKeySet_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  1317  	if fieldMask == nil {
  1318  		return status.Error(codes.Internal, "target field mask is nil")
  1319  	}
  1320  	fieldMask.Paths = make([]LabelKeySet_FieldPath, 0, len(protoFieldMask.Paths))
  1321  	for _, strPath := range protoFieldMask.Paths {
  1322  		path, err := ParseLabelKeySet_FieldPath(strPath)
  1323  		if err != nil {
  1324  			return err
  1325  		}
  1326  		fieldMask.Paths = append(fieldMask.Paths, path)
  1327  	}
  1328  	return nil
  1329  }
  1330  
  1331  // implement methods required by customType
  1332  func (fieldMask LabelKeySet_FieldMask) Marshal() ([]byte, error) {
  1333  	protoFieldMask := fieldMask.ToProtoFieldMask()
  1334  	return proto.Marshal(protoFieldMask)
  1335  }
  1336  
  1337  func (fieldMask *LabelKeySet_FieldMask) Unmarshal(data []byte) error {
  1338  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  1339  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  1340  		return err
  1341  	}
  1342  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  1343  		return err
  1344  	}
  1345  	return nil
  1346  }
  1347  
  1348  func (fieldMask *LabelKeySet_FieldMask) Size() int {
  1349  	return proto.Size(fieldMask.ToProtoFieldMask())
  1350  }
  1351  
  1352  func (fieldMask LabelKeySet_FieldMask) MarshalJSON() ([]byte, error) {
  1353  	return json.Marshal(fieldMask.ToProtoFieldMask())
  1354  }
  1355  
  1356  func (fieldMask *LabelKeySet_FieldMask) UnmarshalJSON(data []byte) error {
  1357  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  1358  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  1359  		return err
  1360  	}
  1361  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  1362  		return err
  1363  	}
  1364  	return nil
  1365  }
  1366  
  1367  func (fieldMask *LabelKeySet_FieldMask) AppendPath(path LabelKeySet_FieldPath) {
  1368  	fieldMask.Paths = append(fieldMask.Paths, path)
  1369  }
  1370  
  1371  func (fieldMask *LabelKeySet_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  1372  	fieldMask.Paths = append(fieldMask.Paths, path.(LabelKeySet_FieldPath))
  1373  }
  1374  
  1375  func (fieldMask *LabelKeySet_FieldMask) GetPaths() []LabelKeySet_FieldPath {
  1376  	if fieldMask == nil {
  1377  		return nil
  1378  	}
  1379  	return fieldMask.Paths
  1380  }
  1381  
  1382  func (fieldMask *LabelKeySet_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  1383  	if fieldMask == nil {
  1384  		return nil
  1385  	}
  1386  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  1387  	for _, path := range fieldMask.Paths {
  1388  		rawPaths = append(rawPaths, path)
  1389  	}
  1390  	return rawPaths
  1391  }
  1392  
  1393  func (fieldMask *LabelKeySet_FieldMask) SetFromCliFlag(raw string) error {
  1394  	path, err := ParseLabelKeySet_FieldPath(raw)
  1395  	if err != nil {
  1396  		return err
  1397  	}
  1398  	fieldMask.Paths = append(fieldMask.Paths, path)
  1399  	return nil
  1400  }
  1401  
  1402  func (fieldMask *LabelKeySet_FieldMask) Set(target, source *LabelKeySet) {
  1403  	for _, path := range fieldMask.Paths {
  1404  		val, _ := path.GetSingle(source)
  1405  		// if val is nil, then field does not exist in source, skip
  1406  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  1407  		if val != nil {
  1408  			path.WithIValue(val).SetTo(&target)
  1409  		}
  1410  	}
  1411  }
  1412  
  1413  func (fieldMask *LabelKeySet_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  1414  	fieldMask.Set(target.(*LabelKeySet), source.(*LabelKeySet))
  1415  }
  1416  
  1417  func (fieldMask *LabelKeySet_FieldMask) Project(source *LabelKeySet) *LabelKeySet {
  1418  	if source == nil {
  1419  		return nil
  1420  	}
  1421  	if fieldMask == nil {
  1422  		return source
  1423  	}
  1424  	result := &LabelKeySet{}
  1425  
  1426  	for _, p := range fieldMask.Paths {
  1427  		switch tp := p.(type) {
  1428  		case *LabelKeySet_FieldTerminalPath:
  1429  			switch tp.selector {
  1430  			case LabelKeySet_FieldPathSelectorLabelKeys:
  1431  				result.LabelKeys = source.LabelKeys
  1432  			case LabelKeySet_FieldPathSelectorVersions:
  1433  				result.Versions = source.Versions
  1434  			}
  1435  		}
  1436  	}
  1437  	return result
  1438  }
  1439  
  1440  func (fieldMask *LabelKeySet_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  1441  	return fieldMask.Project(source.(*LabelKeySet))
  1442  }
  1443  
  1444  func (fieldMask *LabelKeySet_FieldMask) PathsCount() int {
  1445  	if fieldMask == nil {
  1446  		return 0
  1447  	}
  1448  	return len(fieldMask.Paths)
  1449  }
  1450  
  1451  type TimeInterval_FieldMask struct {
  1452  	Paths []TimeInterval_FieldPath
  1453  }
  1454  
  1455  func FullTimeInterval_FieldMask() *TimeInterval_FieldMask {
  1456  	res := &TimeInterval_FieldMask{}
  1457  	res.Paths = append(res.Paths, &TimeInterval_FieldTerminalPath{selector: TimeInterval_FieldPathSelectorEndTime})
  1458  	res.Paths = append(res.Paths, &TimeInterval_FieldTerminalPath{selector: TimeInterval_FieldPathSelectorStartTime})
  1459  	return res
  1460  }
  1461  
  1462  func (fieldMask *TimeInterval_FieldMask) String() string {
  1463  	if fieldMask == nil {
  1464  		return "<nil>"
  1465  	}
  1466  	pathsStr := make([]string, 0, len(fieldMask.Paths))
  1467  	for _, path := range fieldMask.Paths {
  1468  		pathsStr = append(pathsStr, path.String())
  1469  	}
  1470  	return strings.Join(pathsStr, ", ")
  1471  }
  1472  
  1473  func (fieldMask *TimeInterval_FieldMask) IsFull() bool {
  1474  	if fieldMask == nil {
  1475  		return false
  1476  	}
  1477  	presentSelectors := make([]bool, 2)
  1478  	for _, path := range fieldMask.Paths {
  1479  		if asFinal, ok := path.(*TimeInterval_FieldTerminalPath); ok {
  1480  			presentSelectors[int(asFinal.selector)] = true
  1481  		}
  1482  	}
  1483  	for _, flag := range presentSelectors {
  1484  		if !flag {
  1485  			return false
  1486  		}
  1487  	}
  1488  	return true
  1489  }
  1490  
  1491  func (fieldMask *TimeInterval_FieldMask) ProtoReflect() preflect.Message {
  1492  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
  1493  		return ParseTimeInterval_FieldPath(raw)
  1494  	})
  1495  }
  1496  
  1497  func (fieldMask *TimeInterval_FieldMask) ProtoMessage() {}
  1498  
  1499  func (fieldMask *TimeInterval_FieldMask) Reset() {
  1500  	if fieldMask != nil {
  1501  		fieldMask.Paths = nil
  1502  	}
  1503  }
  1504  
  1505  func (fieldMask *TimeInterval_FieldMask) Subtract(other *TimeInterval_FieldMask) *TimeInterval_FieldMask {
  1506  	result := &TimeInterval_FieldMask{}
  1507  	removedSelectors := make([]bool, 2)
  1508  
  1509  	for _, path := range other.GetPaths() {
  1510  		switch tp := path.(type) {
  1511  		case *TimeInterval_FieldTerminalPath:
  1512  			removedSelectors[int(tp.selector)] = true
  1513  		}
  1514  	}
  1515  	for _, path := range fieldMask.GetPaths() {
  1516  		if !removedSelectors[int(path.Selector())] {
  1517  			result.Paths = append(result.Paths, path)
  1518  		}
  1519  	}
  1520  
  1521  	if len(result.Paths) == 0 {
  1522  		return nil
  1523  	}
  1524  	return result
  1525  }
  1526  
  1527  func (fieldMask *TimeInterval_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
  1528  	return fieldMask.Subtract(other.(*TimeInterval_FieldMask))
  1529  }
  1530  
  1531  // FilterInputFields generates copy of field paths with output_only field paths removed
  1532  func (fieldMask *TimeInterval_FieldMask) FilterInputFields() *TimeInterval_FieldMask {
  1533  	result := &TimeInterval_FieldMask{}
  1534  	result.Paths = append(result.Paths, fieldMask.Paths...)
  1535  	return result
  1536  }
  1537  
  1538  // ToFieldMask is used for proto conversions
  1539  func (fieldMask *TimeInterval_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
  1540  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  1541  	for _, path := range fieldMask.Paths {
  1542  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
  1543  	}
  1544  	return protoFieldMask
  1545  }
  1546  
  1547  func (fieldMask *TimeInterval_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
  1548  	if fieldMask == nil {
  1549  		return status.Error(codes.Internal, "target field mask is nil")
  1550  	}
  1551  	fieldMask.Paths = make([]TimeInterval_FieldPath, 0, len(protoFieldMask.Paths))
  1552  	for _, strPath := range protoFieldMask.Paths {
  1553  		path, err := ParseTimeInterval_FieldPath(strPath)
  1554  		if err != nil {
  1555  			return err
  1556  		}
  1557  		fieldMask.Paths = append(fieldMask.Paths, path)
  1558  	}
  1559  	return nil
  1560  }
  1561  
  1562  // implement methods required by customType
  1563  func (fieldMask TimeInterval_FieldMask) Marshal() ([]byte, error) {
  1564  	protoFieldMask := fieldMask.ToProtoFieldMask()
  1565  	return proto.Marshal(protoFieldMask)
  1566  }
  1567  
  1568  func (fieldMask *TimeInterval_FieldMask) Unmarshal(data []byte) error {
  1569  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  1570  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
  1571  		return err
  1572  	}
  1573  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  1574  		return err
  1575  	}
  1576  	return nil
  1577  }
  1578  
  1579  func (fieldMask *TimeInterval_FieldMask) Size() int {
  1580  	return proto.Size(fieldMask.ToProtoFieldMask())
  1581  }
  1582  
  1583  func (fieldMask TimeInterval_FieldMask) MarshalJSON() ([]byte, error) {
  1584  	return json.Marshal(fieldMask.ToProtoFieldMask())
  1585  }
  1586  
  1587  func (fieldMask *TimeInterval_FieldMask) UnmarshalJSON(data []byte) error {
  1588  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
  1589  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
  1590  		return err
  1591  	}
  1592  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
  1593  		return err
  1594  	}
  1595  	return nil
  1596  }
  1597  
  1598  func (fieldMask *TimeInterval_FieldMask) AppendPath(path TimeInterval_FieldPath) {
  1599  	fieldMask.Paths = append(fieldMask.Paths, path)
  1600  }
  1601  
  1602  func (fieldMask *TimeInterval_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
  1603  	fieldMask.Paths = append(fieldMask.Paths, path.(TimeInterval_FieldPath))
  1604  }
  1605  
  1606  func (fieldMask *TimeInterval_FieldMask) GetPaths() []TimeInterval_FieldPath {
  1607  	if fieldMask == nil {
  1608  		return nil
  1609  	}
  1610  	return fieldMask.Paths
  1611  }
  1612  
  1613  func (fieldMask *TimeInterval_FieldMask) GetRawPaths() []gotenobject.FieldPath {
  1614  	if fieldMask == nil {
  1615  		return nil
  1616  	}
  1617  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
  1618  	for _, path := range fieldMask.Paths {
  1619  		rawPaths = append(rawPaths, path)
  1620  	}
  1621  	return rawPaths
  1622  }
  1623  
  1624  func (fieldMask *TimeInterval_FieldMask) SetFromCliFlag(raw string) error {
  1625  	path, err := ParseTimeInterval_FieldPath(raw)
  1626  	if err != nil {
  1627  		return err
  1628  	}
  1629  	fieldMask.Paths = append(fieldMask.Paths, path)
  1630  	return nil
  1631  }
  1632  
  1633  func (fieldMask *TimeInterval_FieldMask) Set(target, source *TimeInterval) {
  1634  	for _, path := range fieldMask.Paths {
  1635  		val, _ := path.GetSingle(source)
  1636  		// if val is nil, then field does not exist in source, skip
  1637  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
  1638  		if val != nil {
  1639  			path.WithIValue(val).SetTo(&target)
  1640  		}
  1641  	}
  1642  }
  1643  
  1644  func (fieldMask *TimeInterval_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
  1645  	fieldMask.Set(target.(*TimeInterval), source.(*TimeInterval))
  1646  }
  1647  
  1648  func (fieldMask *TimeInterval_FieldMask) Project(source *TimeInterval) *TimeInterval {
  1649  	if source == nil {
  1650  		return nil
  1651  	}
  1652  	if fieldMask == nil {
  1653  		return source
  1654  	}
  1655  	result := &TimeInterval{}
  1656  
  1657  	for _, p := range fieldMask.Paths {
  1658  		switch tp := p.(type) {
  1659  		case *TimeInterval_FieldTerminalPath:
  1660  			switch tp.selector {
  1661  			case TimeInterval_FieldPathSelectorEndTime:
  1662  				result.EndTime = source.EndTime
  1663  			case TimeInterval_FieldPathSelectorStartTime:
  1664  				result.StartTime = source.StartTime
  1665  			}
  1666  		}
  1667  	}
  1668  	return result
  1669  }
  1670  
  1671  func (fieldMask *TimeInterval_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  1672  	return fieldMask.Project(source.(*TimeInterval))
  1673  }
  1674  
  1675  func (fieldMask *TimeInterval_FieldMask) PathsCount() int {
  1676  	if fieldMask == nil {
  1677  		return 0
  1678  	}
  1679  	return len(fieldMask.Paths)
  1680  }