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

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