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

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/iam/proto/v1/common.proto
     3  // DO NOT EDIT!!!
     4  
     5  package iam_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  	meta_service "github.com/cloudwan/goten-sdk/meta-service/resources/v1/service"
    23  )
    24  
    25  // ensure the imports are used
    26  var (
    27  	_ = new(json.Marshaler)
    28  	_ = strings.Builder{}
    29  
    30  	_ = codes.NotFound
    31  	_ = status.Status{}
    32  	_ = new(proto.Message)
    33  	_ = new(preflect.Message)
    34  	_ = googlefieldmaskpb.FieldMask{}
    35  
    36  	_ = new(gotenobject.FieldMask)
    37  )
    38  
    39  // make sure we're using proto imports
    40  var (
    41  	_ = &meta_service.Service{}
    42  )
    43  
    44  type PCR_FieldMask struct {
    45  	Paths []PCR_FieldPath
    46  }
    47  
    48  func FullPCR_FieldMask() *PCR_FieldMask {
    49  	res := &PCR_FieldMask{}
    50  	res.Paths = append(res.Paths, &PCR_FieldTerminalPath{selector: PCR_FieldPathSelectorIndex})
    51  	res.Paths = append(res.Paths, &PCR_FieldTerminalPath{selector: PCR_FieldPathSelectorDigestHex})
    52  	res.Paths = append(res.Paths, &PCR_FieldTerminalPath{selector: PCR_FieldPathSelectorDigestAlg})
    53  	res.Paths = append(res.Paths, &PCR_FieldTerminalPath{selector: PCR_FieldPathSelectorComment})
    54  	return res
    55  }
    56  
    57  func (fieldMask *PCR_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 *PCR_FieldMask) IsFull() bool {
    69  	if fieldMask == nil {
    70  		return false
    71  	}
    72  	presentSelectors := make([]bool, 4)
    73  	for _, path := range fieldMask.Paths {
    74  		if asFinal, ok := path.(*PCR_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 *PCR_FieldMask) ProtoReflect() preflect.Message {
    87  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
    88  		return ParsePCR_FieldPath(raw)
    89  	})
    90  }
    91  
    92  func (fieldMask *PCR_FieldMask) ProtoMessage() {}
    93  
    94  func (fieldMask *PCR_FieldMask) Reset() {
    95  	if fieldMask != nil {
    96  		fieldMask.Paths = nil
    97  	}
    98  }
    99  
   100  func (fieldMask *PCR_FieldMask) Subtract(other *PCR_FieldMask) *PCR_FieldMask {
   101  	result := &PCR_FieldMask{}
   102  	removedSelectors := make([]bool, 4)
   103  
   104  	for _, path := range other.GetPaths() {
   105  		switch tp := path.(type) {
   106  		case *PCR_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 *PCR_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
   123  	return fieldMask.Subtract(other.(*PCR_FieldMask))
   124  }
   125  
   126  // FilterInputFields generates copy of field paths with output_only field paths removed
   127  func (fieldMask *PCR_FieldMask) FilterInputFields() *PCR_FieldMask {
   128  	result := &PCR_FieldMask{}
   129  	result.Paths = append(result.Paths, fieldMask.Paths...)
   130  	return result
   131  }
   132  
   133  // ToFieldMask is used for proto conversions
   134  func (fieldMask *PCR_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 *PCR_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([]PCR_FieldPath, 0, len(protoFieldMask.Paths))
   147  	for _, strPath := range protoFieldMask.Paths {
   148  		path, err := ParsePCR_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 PCR_FieldMask) Marshal() ([]byte, error) {
   159  	protoFieldMask := fieldMask.ToProtoFieldMask()
   160  	return proto.Marshal(protoFieldMask)
   161  }
   162  
   163  func (fieldMask *PCR_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 *PCR_FieldMask) Size() int {
   175  	return proto.Size(fieldMask.ToProtoFieldMask())
   176  }
   177  
   178  func (fieldMask PCR_FieldMask) MarshalJSON() ([]byte, error) {
   179  	return json.Marshal(fieldMask.ToProtoFieldMask())
   180  }
   181  
   182  func (fieldMask *PCR_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 *PCR_FieldMask) AppendPath(path PCR_FieldPath) {
   194  	fieldMask.Paths = append(fieldMask.Paths, path)
   195  }
   196  
   197  func (fieldMask *PCR_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
   198  	fieldMask.Paths = append(fieldMask.Paths, path.(PCR_FieldPath))
   199  }
   200  
   201  func (fieldMask *PCR_FieldMask) GetPaths() []PCR_FieldPath {
   202  	if fieldMask == nil {
   203  		return nil
   204  	}
   205  	return fieldMask.Paths
   206  }
   207  
   208  func (fieldMask *PCR_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 *PCR_FieldMask) SetFromCliFlag(raw string) error {
   220  	path, err := ParsePCR_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 *PCR_FieldMask) Set(target, source *PCR) {
   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 *PCR_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
   240  	fieldMask.Set(target.(*PCR), source.(*PCR))
   241  }
   242  
   243  func (fieldMask *PCR_FieldMask) Project(source *PCR) *PCR {
   244  	if source == nil {
   245  		return nil
   246  	}
   247  	if fieldMask == nil {
   248  		return source
   249  	}
   250  	result := &PCR{}
   251  
   252  	for _, p := range fieldMask.Paths {
   253  		switch tp := p.(type) {
   254  		case *PCR_FieldTerminalPath:
   255  			switch tp.selector {
   256  			case PCR_FieldPathSelectorIndex:
   257  				result.Index = source.Index
   258  			case PCR_FieldPathSelectorDigestHex:
   259  				result.DigestHex = source.DigestHex
   260  			case PCR_FieldPathSelectorDigestAlg:
   261  				result.DigestAlg = source.DigestAlg
   262  			case PCR_FieldPathSelectorComment:
   263  				result.Comment = source.Comment
   264  			}
   265  		}
   266  	}
   267  	return result
   268  }
   269  
   270  func (fieldMask *PCR_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
   271  	return fieldMask.Project(source.(*PCR))
   272  }
   273  
   274  func (fieldMask *PCR_FieldMask) PathsCount() int {
   275  	if fieldMask == nil {
   276  		return 0
   277  	}
   278  	return len(fieldMask.Paths)
   279  }
   280  
   281  type ServiceBusinessTier_FieldMask struct {
   282  	Paths []ServiceBusinessTier_FieldPath
   283  }
   284  
   285  func FullServiceBusinessTier_FieldMask() *ServiceBusinessTier_FieldMask {
   286  	res := &ServiceBusinessTier_FieldMask{}
   287  	res.Paths = append(res.Paths, &ServiceBusinessTier_FieldTerminalPath{selector: ServiceBusinessTier_FieldPathSelectorService})
   288  	res.Paths = append(res.Paths, &ServiceBusinessTier_FieldTerminalPath{selector: ServiceBusinessTier_FieldPathSelectorBusinessTier})
   289  	return res
   290  }
   291  
   292  func (fieldMask *ServiceBusinessTier_FieldMask) String() string {
   293  	if fieldMask == nil {
   294  		return "<nil>"
   295  	}
   296  	pathsStr := make([]string, 0, len(fieldMask.Paths))
   297  	for _, path := range fieldMask.Paths {
   298  		pathsStr = append(pathsStr, path.String())
   299  	}
   300  	return strings.Join(pathsStr, ", ")
   301  }
   302  
   303  func (fieldMask *ServiceBusinessTier_FieldMask) IsFull() bool {
   304  	if fieldMask == nil {
   305  		return false
   306  	}
   307  	presentSelectors := make([]bool, 2)
   308  	for _, path := range fieldMask.Paths {
   309  		if asFinal, ok := path.(*ServiceBusinessTier_FieldTerminalPath); ok {
   310  			presentSelectors[int(asFinal.selector)] = true
   311  		}
   312  	}
   313  	for _, flag := range presentSelectors {
   314  		if !flag {
   315  			return false
   316  		}
   317  	}
   318  	return true
   319  }
   320  
   321  func (fieldMask *ServiceBusinessTier_FieldMask) ProtoReflect() preflect.Message {
   322  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
   323  		return ParseServiceBusinessTier_FieldPath(raw)
   324  	})
   325  }
   326  
   327  func (fieldMask *ServiceBusinessTier_FieldMask) ProtoMessage() {}
   328  
   329  func (fieldMask *ServiceBusinessTier_FieldMask) Reset() {
   330  	if fieldMask != nil {
   331  		fieldMask.Paths = nil
   332  	}
   333  }
   334  
   335  func (fieldMask *ServiceBusinessTier_FieldMask) Subtract(other *ServiceBusinessTier_FieldMask) *ServiceBusinessTier_FieldMask {
   336  	result := &ServiceBusinessTier_FieldMask{}
   337  	removedSelectors := make([]bool, 2)
   338  
   339  	for _, path := range other.GetPaths() {
   340  		switch tp := path.(type) {
   341  		case *ServiceBusinessTier_FieldTerminalPath:
   342  			removedSelectors[int(tp.selector)] = true
   343  		}
   344  	}
   345  	for _, path := range fieldMask.GetPaths() {
   346  		if !removedSelectors[int(path.Selector())] {
   347  			result.Paths = append(result.Paths, path)
   348  		}
   349  	}
   350  
   351  	if len(result.Paths) == 0 {
   352  		return nil
   353  	}
   354  	return result
   355  }
   356  
   357  func (fieldMask *ServiceBusinessTier_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
   358  	return fieldMask.Subtract(other.(*ServiceBusinessTier_FieldMask))
   359  }
   360  
   361  // FilterInputFields generates copy of field paths with output_only field paths removed
   362  func (fieldMask *ServiceBusinessTier_FieldMask) FilterInputFields() *ServiceBusinessTier_FieldMask {
   363  	result := &ServiceBusinessTier_FieldMask{}
   364  	result.Paths = append(result.Paths, fieldMask.Paths...)
   365  	return result
   366  }
   367  
   368  // ToFieldMask is used for proto conversions
   369  func (fieldMask *ServiceBusinessTier_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
   370  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   371  	for _, path := range fieldMask.Paths {
   372  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
   373  	}
   374  	return protoFieldMask
   375  }
   376  
   377  func (fieldMask *ServiceBusinessTier_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
   378  	if fieldMask == nil {
   379  		return status.Error(codes.Internal, "target field mask is nil")
   380  	}
   381  	fieldMask.Paths = make([]ServiceBusinessTier_FieldPath, 0, len(protoFieldMask.Paths))
   382  	for _, strPath := range protoFieldMask.Paths {
   383  		path, err := ParseServiceBusinessTier_FieldPath(strPath)
   384  		if err != nil {
   385  			return err
   386  		}
   387  		fieldMask.Paths = append(fieldMask.Paths, path)
   388  	}
   389  	return nil
   390  }
   391  
   392  // implement methods required by customType
   393  func (fieldMask ServiceBusinessTier_FieldMask) Marshal() ([]byte, error) {
   394  	protoFieldMask := fieldMask.ToProtoFieldMask()
   395  	return proto.Marshal(protoFieldMask)
   396  }
   397  
   398  func (fieldMask *ServiceBusinessTier_FieldMask) Unmarshal(data []byte) error {
   399  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   400  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
   401  		return err
   402  	}
   403  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   404  		return err
   405  	}
   406  	return nil
   407  }
   408  
   409  func (fieldMask *ServiceBusinessTier_FieldMask) Size() int {
   410  	return proto.Size(fieldMask.ToProtoFieldMask())
   411  }
   412  
   413  func (fieldMask ServiceBusinessTier_FieldMask) MarshalJSON() ([]byte, error) {
   414  	return json.Marshal(fieldMask.ToProtoFieldMask())
   415  }
   416  
   417  func (fieldMask *ServiceBusinessTier_FieldMask) UnmarshalJSON(data []byte) error {
   418  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   419  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
   420  		return err
   421  	}
   422  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   423  		return err
   424  	}
   425  	return nil
   426  }
   427  
   428  func (fieldMask *ServiceBusinessTier_FieldMask) AppendPath(path ServiceBusinessTier_FieldPath) {
   429  	fieldMask.Paths = append(fieldMask.Paths, path)
   430  }
   431  
   432  func (fieldMask *ServiceBusinessTier_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
   433  	fieldMask.Paths = append(fieldMask.Paths, path.(ServiceBusinessTier_FieldPath))
   434  }
   435  
   436  func (fieldMask *ServiceBusinessTier_FieldMask) GetPaths() []ServiceBusinessTier_FieldPath {
   437  	if fieldMask == nil {
   438  		return nil
   439  	}
   440  	return fieldMask.Paths
   441  }
   442  
   443  func (fieldMask *ServiceBusinessTier_FieldMask) GetRawPaths() []gotenobject.FieldPath {
   444  	if fieldMask == nil {
   445  		return nil
   446  	}
   447  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
   448  	for _, path := range fieldMask.Paths {
   449  		rawPaths = append(rawPaths, path)
   450  	}
   451  	return rawPaths
   452  }
   453  
   454  func (fieldMask *ServiceBusinessTier_FieldMask) SetFromCliFlag(raw string) error {
   455  	path, err := ParseServiceBusinessTier_FieldPath(raw)
   456  	if err != nil {
   457  		return err
   458  	}
   459  	fieldMask.Paths = append(fieldMask.Paths, path)
   460  	return nil
   461  }
   462  
   463  func (fieldMask *ServiceBusinessTier_FieldMask) Set(target, source *ServiceBusinessTier) {
   464  	for _, path := range fieldMask.Paths {
   465  		val, _ := path.GetSingle(source)
   466  		// if val is nil, then field does not exist in source, skip
   467  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
   468  		if val != nil {
   469  			path.WithIValue(val).SetTo(&target)
   470  		}
   471  	}
   472  }
   473  
   474  func (fieldMask *ServiceBusinessTier_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
   475  	fieldMask.Set(target.(*ServiceBusinessTier), source.(*ServiceBusinessTier))
   476  }
   477  
   478  func (fieldMask *ServiceBusinessTier_FieldMask) Project(source *ServiceBusinessTier) *ServiceBusinessTier {
   479  	if source == nil {
   480  		return nil
   481  	}
   482  	if fieldMask == nil {
   483  		return source
   484  	}
   485  	result := &ServiceBusinessTier{}
   486  
   487  	for _, p := range fieldMask.Paths {
   488  		switch tp := p.(type) {
   489  		case *ServiceBusinessTier_FieldTerminalPath:
   490  			switch tp.selector {
   491  			case ServiceBusinessTier_FieldPathSelectorService:
   492  				result.Service = source.Service
   493  			case ServiceBusinessTier_FieldPathSelectorBusinessTier:
   494  				result.BusinessTier = source.BusinessTier
   495  			}
   496  		}
   497  	}
   498  	return result
   499  }
   500  
   501  func (fieldMask *ServiceBusinessTier_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
   502  	return fieldMask.Project(source.(*ServiceBusinessTier))
   503  }
   504  
   505  func (fieldMask *ServiceBusinessTier_FieldMask) PathsCount() int {
   506  	if fieldMask == nil {
   507  		return 0
   508  	}
   509  	return len(fieldMask.Paths)
   510  }
   511  
   512  type ServiceErrors_FieldMask struct {
   513  	Paths []ServiceErrors_FieldPath
   514  }
   515  
   516  func FullServiceErrors_FieldMask() *ServiceErrors_FieldMask {
   517  	res := &ServiceErrors_FieldMask{}
   518  	res.Paths = append(res.Paths, &ServiceErrors_FieldTerminalPath{selector: ServiceErrors_FieldPathSelectorErrors})
   519  	return res
   520  }
   521  
   522  func (fieldMask *ServiceErrors_FieldMask) String() string {
   523  	if fieldMask == nil {
   524  		return "<nil>"
   525  	}
   526  	pathsStr := make([]string, 0, len(fieldMask.Paths))
   527  	for _, path := range fieldMask.Paths {
   528  		pathsStr = append(pathsStr, path.String())
   529  	}
   530  	return strings.Join(pathsStr, ", ")
   531  }
   532  
   533  func (fieldMask *ServiceErrors_FieldMask) IsFull() bool {
   534  	if fieldMask == nil {
   535  		return false
   536  	}
   537  	presentSelectors := make([]bool, 1)
   538  	for _, path := range fieldMask.Paths {
   539  		if asFinal, ok := path.(*ServiceErrors_FieldTerminalPath); ok {
   540  			presentSelectors[int(asFinal.selector)] = true
   541  		}
   542  	}
   543  	for _, flag := range presentSelectors {
   544  		if !flag {
   545  			return false
   546  		}
   547  	}
   548  	return true
   549  }
   550  
   551  func (fieldMask *ServiceErrors_FieldMask) ProtoReflect() preflect.Message {
   552  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
   553  		return ParseServiceErrors_FieldPath(raw)
   554  	})
   555  }
   556  
   557  func (fieldMask *ServiceErrors_FieldMask) ProtoMessage() {}
   558  
   559  func (fieldMask *ServiceErrors_FieldMask) Reset() {
   560  	if fieldMask != nil {
   561  		fieldMask.Paths = nil
   562  	}
   563  }
   564  
   565  func (fieldMask *ServiceErrors_FieldMask) Subtract(other *ServiceErrors_FieldMask) *ServiceErrors_FieldMask {
   566  	result := &ServiceErrors_FieldMask{}
   567  	removedSelectors := make([]bool, 1)
   568  	otherSubMasks := map[ServiceErrors_FieldPathSelector]gotenobject.FieldMask{
   569  		ServiceErrors_FieldPathSelectorErrors: &ServiceErrors_Error_FieldMask{},
   570  	}
   571  	mySubMasks := map[ServiceErrors_FieldPathSelector]gotenobject.FieldMask{
   572  		ServiceErrors_FieldPathSelectorErrors: &ServiceErrors_Error_FieldMask{},
   573  	}
   574  
   575  	for _, path := range other.GetPaths() {
   576  		switch tp := path.(type) {
   577  		case *ServiceErrors_FieldTerminalPath:
   578  			removedSelectors[int(tp.selector)] = true
   579  		case *ServiceErrors_FieldSubPath:
   580  			otherSubMasks[tp.selector].AppendRawPath(tp.subPath)
   581  		}
   582  	}
   583  	for _, path := range fieldMask.GetPaths() {
   584  		if !removedSelectors[int(path.Selector())] {
   585  			if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 {
   586  				if tp, ok := path.(*ServiceErrors_FieldTerminalPath); ok {
   587  					switch tp.selector {
   588  					case ServiceErrors_FieldPathSelectorErrors:
   589  						mySubMasks[ServiceErrors_FieldPathSelectorErrors] = FullServiceErrors_Error_FieldMask()
   590  					}
   591  				} else if tp, ok := path.(*ServiceErrors_FieldSubPath); ok {
   592  					mySubMasks[tp.selector].AppendRawPath(tp.subPath)
   593  				}
   594  			} else {
   595  				result.Paths = append(result.Paths, path)
   596  			}
   597  		}
   598  	}
   599  	for selector, mySubMask := range mySubMasks {
   600  		if mySubMask.PathsCount() > 0 {
   601  			for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() {
   602  				result.Paths = append(result.Paths, &ServiceErrors_FieldSubPath{selector: selector, subPath: allowedPath})
   603  			}
   604  		}
   605  	}
   606  
   607  	if len(result.Paths) == 0 {
   608  		return nil
   609  	}
   610  	return result
   611  }
   612  
   613  func (fieldMask *ServiceErrors_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
   614  	return fieldMask.Subtract(other.(*ServiceErrors_FieldMask))
   615  }
   616  
   617  // FilterInputFields generates copy of field paths with output_only field paths removed
   618  func (fieldMask *ServiceErrors_FieldMask) FilterInputFields() *ServiceErrors_FieldMask {
   619  	result := &ServiceErrors_FieldMask{}
   620  	result.Paths = append(result.Paths, fieldMask.Paths...)
   621  	return result
   622  }
   623  
   624  // ToFieldMask is used for proto conversions
   625  func (fieldMask *ServiceErrors_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
   626  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   627  	for _, path := range fieldMask.Paths {
   628  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
   629  	}
   630  	return protoFieldMask
   631  }
   632  
   633  func (fieldMask *ServiceErrors_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
   634  	if fieldMask == nil {
   635  		return status.Error(codes.Internal, "target field mask is nil")
   636  	}
   637  	fieldMask.Paths = make([]ServiceErrors_FieldPath, 0, len(protoFieldMask.Paths))
   638  	for _, strPath := range protoFieldMask.Paths {
   639  		path, err := ParseServiceErrors_FieldPath(strPath)
   640  		if err != nil {
   641  			return err
   642  		}
   643  		fieldMask.Paths = append(fieldMask.Paths, path)
   644  	}
   645  	return nil
   646  }
   647  
   648  // implement methods required by customType
   649  func (fieldMask ServiceErrors_FieldMask) Marshal() ([]byte, error) {
   650  	protoFieldMask := fieldMask.ToProtoFieldMask()
   651  	return proto.Marshal(protoFieldMask)
   652  }
   653  
   654  func (fieldMask *ServiceErrors_FieldMask) Unmarshal(data []byte) error {
   655  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   656  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
   657  		return err
   658  	}
   659  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   660  		return err
   661  	}
   662  	return nil
   663  }
   664  
   665  func (fieldMask *ServiceErrors_FieldMask) Size() int {
   666  	return proto.Size(fieldMask.ToProtoFieldMask())
   667  }
   668  
   669  func (fieldMask ServiceErrors_FieldMask) MarshalJSON() ([]byte, error) {
   670  	return json.Marshal(fieldMask.ToProtoFieldMask())
   671  }
   672  
   673  func (fieldMask *ServiceErrors_FieldMask) UnmarshalJSON(data []byte) error {
   674  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   675  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
   676  		return err
   677  	}
   678  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   679  		return err
   680  	}
   681  	return nil
   682  }
   683  
   684  func (fieldMask *ServiceErrors_FieldMask) AppendPath(path ServiceErrors_FieldPath) {
   685  	fieldMask.Paths = append(fieldMask.Paths, path)
   686  }
   687  
   688  func (fieldMask *ServiceErrors_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
   689  	fieldMask.Paths = append(fieldMask.Paths, path.(ServiceErrors_FieldPath))
   690  }
   691  
   692  func (fieldMask *ServiceErrors_FieldMask) GetPaths() []ServiceErrors_FieldPath {
   693  	if fieldMask == nil {
   694  		return nil
   695  	}
   696  	return fieldMask.Paths
   697  }
   698  
   699  func (fieldMask *ServiceErrors_FieldMask) GetRawPaths() []gotenobject.FieldPath {
   700  	if fieldMask == nil {
   701  		return nil
   702  	}
   703  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
   704  	for _, path := range fieldMask.Paths {
   705  		rawPaths = append(rawPaths, path)
   706  	}
   707  	return rawPaths
   708  }
   709  
   710  func (fieldMask *ServiceErrors_FieldMask) SetFromCliFlag(raw string) error {
   711  	path, err := ParseServiceErrors_FieldPath(raw)
   712  	if err != nil {
   713  		return err
   714  	}
   715  	fieldMask.Paths = append(fieldMask.Paths, path)
   716  	return nil
   717  }
   718  
   719  func (fieldMask *ServiceErrors_FieldMask) Set(target, source *ServiceErrors) {
   720  	for _, path := range fieldMask.Paths {
   721  		val, _ := path.GetSingle(source)
   722  		// if val is nil, then field does not exist in source, skip
   723  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
   724  		if val != nil {
   725  			path.WithIValue(val).SetTo(&target)
   726  		}
   727  	}
   728  }
   729  
   730  func (fieldMask *ServiceErrors_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
   731  	fieldMask.Set(target.(*ServiceErrors), source.(*ServiceErrors))
   732  }
   733  
   734  func (fieldMask *ServiceErrors_FieldMask) Project(source *ServiceErrors) *ServiceErrors {
   735  	if source == nil {
   736  		return nil
   737  	}
   738  	if fieldMask == nil {
   739  		return source
   740  	}
   741  	result := &ServiceErrors{}
   742  	errorsMask := &ServiceErrors_Error_FieldMask{}
   743  	wholeErrorsAccepted := false
   744  
   745  	for _, p := range fieldMask.Paths {
   746  		switch tp := p.(type) {
   747  		case *ServiceErrors_FieldTerminalPath:
   748  			switch tp.selector {
   749  			case ServiceErrors_FieldPathSelectorErrors:
   750  				result.Errors = source.Errors
   751  				wholeErrorsAccepted = true
   752  			}
   753  		case *ServiceErrors_FieldSubPath:
   754  			switch tp.selector {
   755  			case ServiceErrors_FieldPathSelectorErrors:
   756  				errorsMask.AppendPath(tp.subPath.(ServiceErrorsError_FieldPath))
   757  			}
   758  		}
   759  	}
   760  	if wholeErrorsAccepted == false && len(errorsMask.Paths) > 0 {
   761  		for _, sourceItem := range source.GetErrors() {
   762  			result.Errors = append(result.Errors, errorsMask.Project(sourceItem))
   763  		}
   764  	}
   765  	return result
   766  }
   767  
   768  func (fieldMask *ServiceErrors_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
   769  	return fieldMask.Project(source.(*ServiceErrors))
   770  }
   771  
   772  func (fieldMask *ServiceErrors_FieldMask) PathsCount() int {
   773  	if fieldMask == nil {
   774  		return 0
   775  	}
   776  	return len(fieldMask.Paths)
   777  }
   778  
   779  type ServiceErrors_Error_FieldMask struct {
   780  	Paths []ServiceErrorsError_FieldPath
   781  }
   782  
   783  func FullServiceErrors_Error_FieldMask() *ServiceErrors_Error_FieldMask {
   784  	res := &ServiceErrors_Error_FieldMask{}
   785  	res.Paths = append(res.Paths, &ServiceErrorsError_FieldTerminalPath{selector: ServiceErrorsError_FieldPathSelectorService})
   786  	res.Paths = append(res.Paths, &ServiceErrorsError_FieldTerminalPath{selector: ServiceErrorsError_FieldPathSelectorMessage})
   787  	return res
   788  }
   789  
   790  func (fieldMask *ServiceErrors_Error_FieldMask) String() string {
   791  	if fieldMask == nil {
   792  		return "<nil>"
   793  	}
   794  	pathsStr := make([]string, 0, len(fieldMask.Paths))
   795  	for _, path := range fieldMask.Paths {
   796  		pathsStr = append(pathsStr, path.String())
   797  	}
   798  	return strings.Join(pathsStr, ", ")
   799  }
   800  
   801  func (fieldMask *ServiceErrors_Error_FieldMask) IsFull() bool {
   802  	if fieldMask == nil {
   803  		return false
   804  	}
   805  	presentSelectors := make([]bool, 2)
   806  	for _, path := range fieldMask.Paths {
   807  		if asFinal, ok := path.(*ServiceErrorsError_FieldTerminalPath); ok {
   808  			presentSelectors[int(asFinal.selector)] = true
   809  		}
   810  	}
   811  	for _, flag := range presentSelectors {
   812  		if !flag {
   813  			return false
   814  		}
   815  	}
   816  	return true
   817  }
   818  
   819  func (fieldMask *ServiceErrors_Error_FieldMask) ProtoReflect() preflect.Message {
   820  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
   821  		return ParseServiceErrorsError_FieldPath(raw)
   822  	})
   823  }
   824  
   825  func (fieldMask *ServiceErrors_Error_FieldMask) ProtoMessage() {}
   826  
   827  func (fieldMask *ServiceErrors_Error_FieldMask) Reset() {
   828  	if fieldMask != nil {
   829  		fieldMask.Paths = nil
   830  	}
   831  }
   832  
   833  func (fieldMask *ServiceErrors_Error_FieldMask) Subtract(other *ServiceErrors_Error_FieldMask) *ServiceErrors_Error_FieldMask {
   834  	result := &ServiceErrors_Error_FieldMask{}
   835  	removedSelectors := make([]bool, 2)
   836  
   837  	for _, path := range other.GetPaths() {
   838  		switch tp := path.(type) {
   839  		case *ServiceErrorsError_FieldTerminalPath:
   840  			removedSelectors[int(tp.selector)] = true
   841  		}
   842  	}
   843  	for _, path := range fieldMask.GetPaths() {
   844  		if !removedSelectors[int(path.Selector())] {
   845  			result.Paths = append(result.Paths, path)
   846  		}
   847  	}
   848  
   849  	if len(result.Paths) == 0 {
   850  		return nil
   851  	}
   852  	return result
   853  }
   854  
   855  func (fieldMask *ServiceErrors_Error_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
   856  	return fieldMask.Subtract(other.(*ServiceErrors_Error_FieldMask))
   857  }
   858  
   859  // FilterInputFields generates copy of field paths with output_only field paths removed
   860  func (fieldMask *ServiceErrors_Error_FieldMask) FilterInputFields() *ServiceErrors_Error_FieldMask {
   861  	result := &ServiceErrors_Error_FieldMask{}
   862  	result.Paths = append(result.Paths, fieldMask.Paths...)
   863  	return result
   864  }
   865  
   866  // ToFieldMask is used for proto conversions
   867  func (fieldMask *ServiceErrors_Error_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
   868  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   869  	for _, path := range fieldMask.Paths {
   870  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
   871  	}
   872  	return protoFieldMask
   873  }
   874  
   875  func (fieldMask *ServiceErrors_Error_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
   876  	if fieldMask == nil {
   877  		return status.Error(codes.Internal, "target field mask is nil")
   878  	}
   879  	fieldMask.Paths = make([]ServiceErrorsError_FieldPath, 0, len(protoFieldMask.Paths))
   880  	for _, strPath := range protoFieldMask.Paths {
   881  		path, err := ParseServiceErrorsError_FieldPath(strPath)
   882  		if err != nil {
   883  			return err
   884  		}
   885  		fieldMask.Paths = append(fieldMask.Paths, path)
   886  	}
   887  	return nil
   888  }
   889  
   890  // implement methods required by customType
   891  func (fieldMask ServiceErrors_Error_FieldMask) Marshal() ([]byte, error) {
   892  	protoFieldMask := fieldMask.ToProtoFieldMask()
   893  	return proto.Marshal(protoFieldMask)
   894  }
   895  
   896  func (fieldMask *ServiceErrors_Error_FieldMask) Unmarshal(data []byte) error {
   897  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   898  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
   899  		return err
   900  	}
   901  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   902  		return err
   903  	}
   904  	return nil
   905  }
   906  
   907  func (fieldMask *ServiceErrors_Error_FieldMask) Size() int {
   908  	return proto.Size(fieldMask.ToProtoFieldMask())
   909  }
   910  
   911  func (fieldMask ServiceErrors_Error_FieldMask) MarshalJSON() ([]byte, error) {
   912  	return json.Marshal(fieldMask.ToProtoFieldMask())
   913  }
   914  
   915  func (fieldMask *ServiceErrors_Error_FieldMask) UnmarshalJSON(data []byte) error {
   916  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   917  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
   918  		return err
   919  	}
   920  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   921  		return err
   922  	}
   923  	return nil
   924  }
   925  
   926  func (fieldMask *ServiceErrors_Error_FieldMask) AppendPath(path ServiceErrorsError_FieldPath) {
   927  	fieldMask.Paths = append(fieldMask.Paths, path)
   928  }
   929  
   930  func (fieldMask *ServiceErrors_Error_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
   931  	fieldMask.Paths = append(fieldMask.Paths, path.(ServiceErrorsError_FieldPath))
   932  }
   933  
   934  func (fieldMask *ServiceErrors_Error_FieldMask) GetPaths() []ServiceErrorsError_FieldPath {
   935  	if fieldMask == nil {
   936  		return nil
   937  	}
   938  	return fieldMask.Paths
   939  }
   940  
   941  func (fieldMask *ServiceErrors_Error_FieldMask) GetRawPaths() []gotenobject.FieldPath {
   942  	if fieldMask == nil {
   943  		return nil
   944  	}
   945  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
   946  	for _, path := range fieldMask.Paths {
   947  		rawPaths = append(rawPaths, path)
   948  	}
   949  	return rawPaths
   950  }
   951  
   952  func (fieldMask *ServiceErrors_Error_FieldMask) SetFromCliFlag(raw string) error {
   953  	path, err := ParseServiceErrorsError_FieldPath(raw)
   954  	if err != nil {
   955  		return err
   956  	}
   957  	fieldMask.Paths = append(fieldMask.Paths, path)
   958  	return nil
   959  }
   960  
   961  func (fieldMask *ServiceErrors_Error_FieldMask) Set(target, source *ServiceErrors_Error) {
   962  	for _, path := range fieldMask.Paths {
   963  		val, _ := path.GetSingle(source)
   964  		// if val is nil, then field does not exist in source, skip
   965  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
   966  		if val != nil {
   967  			path.WithIValue(val).SetTo(&target)
   968  		}
   969  	}
   970  }
   971  
   972  func (fieldMask *ServiceErrors_Error_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
   973  	fieldMask.Set(target.(*ServiceErrors_Error), source.(*ServiceErrors_Error))
   974  }
   975  
   976  func (fieldMask *ServiceErrors_Error_FieldMask) Project(source *ServiceErrors_Error) *ServiceErrors_Error {
   977  	if source == nil {
   978  		return nil
   979  	}
   980  	if fieldMask == nil {
   981  		return source
   982  	}
   983  	result := &ServiceErrors_Error{}
   984  
   985  	for _, p := range fieldMask.Paths {
   986  		switch tp := p.(type) {
   987  		case *ServiceErrorsError_FieldTerminalPath:
   988  			switch tp.selector {
   989  			case ServiceErrorsError_FieldPathSelectorService:
   990  				result.Service = source.Service
   991  			case ServiceErrorsError_FieldPathSelectorMessage:
   992  				result.Message = source.Message
   993  			}
   994  		}
   995  	}
   996  	return result
   997  }
   998  
   999  func (fieldMask *ServiceErrors_Error_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
  1000  	return fieldMask.Project(source.(*ServiceErrors_Error))
  1001  }
  1002  
  1003  func (fieldMask *ServiceErrors_Error_FieldMask) PathsCount() int {
  1004  	if fieldMask == nil {
  1005  		return 0
  1006  	}
  1007  	return len(fieldMask.Paths)
  1008  }