github.com/cloudwan/edgelq-sdk@v1.15.4/iam/resources/v1alpha2/role_binding/role_binding.pb.object_ext.go (about)

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/iam/proto/v1alpha2/role_binding.proto
     3  // DO NOT EDIT!!!
     4  
     5  package role_binding
     6  
     7  import (
     8  	"fmt"
     9  	"sort"
    10  
    11  	"google.golang.org/protobuf/proto"
    12  	googlefieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
    13  
    14  	gotenobject "github.com/cloudwan/goten-sdk/runtime/object"
    15  )
    16  
    17  // proto imports
    18  import (
    19  	condition "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/condition"
    20  	organization "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/organization"
    21  	project "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/project"
    22  	role "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/role"
    23  	meta "github.com/cloudwan/goten-sdk/types/meta"
    24  )
    25  
    26  // ensure the imports are used
    27  var (
    28  	_ = new(fmt.Stringer)
    29  	_ = new(sort.Interface)
    30  
    31  	_ = new(proto.Message)
    32  	_ = googlefieldmaskpb.FieldMask{}
    33  
    34  	_ = new(gotenobject.FieldPath)
    35  )
    36  
    37  // make sure we're using proto imports
    38  var (
    39  	_ = &condition.Condition{}
    40  	_ = &organization.Organization{}
    41  	_ = &project.Project{}
    42  	_ = &role.Role{}
    43  	_ = &meta.Meta{}
    44  )
    45  
    46  func (o *RoleBinding) GotenObjectExt() {}
    47  
    48  func (o *RoleBinding) MakeFullFieldMask() *RoleBinding_FieldMask {
    49  	return FullRoleBinding_FieldMask()
    50  }
    51  
    52  func (o *RoleBinding) MakeRawFullFieldMask() gotenobject.FieldMask {
    53  	return FullRoleBinding_FieldMask()
    54  }
    55  
    56  func (o *RoleBinding) MakeDiffFieldMask(other *RoleBinding) *RoleBinding_FieldMask {
    57  	if o == nil && other == nil {
    58  		return &RoleBinding_FieldMask{}
    59  	}
    60  	if o == nil || other == nil {
    61  		return FullRoleBinding_FieldMask()
    62  	}
    63  
    64  	res := &RoleBinding_FieldMask{}
    65  	if o.GetName().String() != other.GetName().String() {
    66  		res.Paths = append(res.Paths, &RoleBinding_FieldTerminalPath{selector: RoleBinding_FieldPathSelectorName})
    67  	}
    68  	if o.GetRole().String() != other.GetRole().String() {
    69  		res.Paths = append(res.Paths, &RoleBinding_FieldTerminalPath{selector: RoleBinding_FieldPathSelectorRole})
    70  	}
    71  	if o.GetMember() != other.GetMember() {
    72  		res.Paths = append(res.Paths, &RoleBinding_FieldTerminalPath{selector: RoleBinding_FieldPathSelectorMember})
    73  	}
    74  	{
    75  		subMask := o.GetConditionBinding().MakeDiffFieldMask(other.GetConditionBinding())
    76  		if subMask.IsFull() {
    77  			res.Paths = append(res.Paths, &RoleBinding_FieldTerminalPath{selector: RoleBinding_FieldPathSelectorConditionBinding})
    78  		} else {
    79  			for _, subpath := range subMask.Paths {
    80  				res.Paths = append(res.Paths, &RoleBinding_FieldSubPath{selector: RoleBinding_FieldPathSelectorConditionBinding, subPath: subpath})
    81  			}
    82  		}
    83  	}
    84  
    85  	if len(o.GetAncestryPath()) == len(other.GetAncestryPath()) {
    86  		for i, lValue := range o.GetAncestryPath() {
    87  			rValue := other.GetAncestryPath()[i]
    88  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
    89  				res.Paths = append(res.Paths, &RoleBinding_FieldTerminalPath{selector: RoleBinding_FieldPathSelectorAncestryPath})
    90  				break
    91  			}
    92  		}
    93  	} else {
    94  		res.Paths = append(res.Paths, &RoleBinding_FieldTerminalPath{selector: RoleBinding_FieldPathSelectorAncestryPath})
    95  	}
    96  	{
    97  		subMask := o.GetMetadata().MakeDiffFieldMask(other.GetMetadata())
    98  		if subMask.IsFull() {
    99  			res.Paths = append(res.Paths, &RoleBinding_FieldTerminalPath{selector: RoleBinding_FieldPathSelectorMetadata})
   100  		} else {
   101  			for _, subpath := range subMask.Paths {
   102  				res.Paths = append(res.Paths, &RoleBinding_FieldSubPath{selector: RoleBinding_FieldPathSelectorMetadata, subPath: subpath})
   103  			}
   104  		}
   105  	}
   106  	return res
   107  }
   108  
   109  func (o *RoleBinding) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
   110  	return o.MakeDiffFieldMask(other.(*RoleBinding))
   111  }
   112  
   113  func (o *RoleBinding) Clone() *RoleBinding {
   114  	if o == nil {
   115  		return nil
   116  	}
   117  	result := &RoleBinding{}
   118  	if o.Name == nil {
   119  		result.Name = nil
   120  	} else if data, err := o.Name.ProtoString(); err != nil {
   121  		panic(err)
   122  	} else {
   123  		result.Name = &Name{}
   124  		if err := result.Name.ParseProtoString(data); err != nil {
   125  			panic(err)
   126  		}
   127  	}
   128  	if o.Role == nil {
   129  		result.Role = nil
   130  	} else if data, err := o.Role.ProtoString(); err != nil {
   131  		panic(err)
   132  	} else {
   133  		result.Role = &role.Reference{}
   134  		if err := result.Role.ParseProtoString(data); err != nil {
   135  			panic(err)
   136  		}
   137  	}
   138  	result.Member = o.Member
   139  	result.ConditionBinding = o.ConditionBinding.Clone()
   140  	result.AncestryPath = make([]*RoleBinding_Parent, len(o.AncestryPath))
   141  	for i, sourceValue := range o.AncestryPath {
   142  		result.AncestryPath[i] = sourceValue.Clone()
   143  	}
   144  	result.Metadata = o.Metadata.Clone()
   145  	return result
   146  }
   147  
   148  func (o *RoleBinding) CloneRaw() gotenobject.GotenObjectExt {
   149  	return o.Clone()
   150  }
   151  
   152  func (o *RoleBinding) Merge(source *RoleBinding) {
   153  	if source.GetName() != nil {
   154  		if data, err := source.GetName().ProtoString(); err != nil {
   155  			panic(err)
   156  		} else {
   157  			o.Name = &Name{}
   158  			if err := o.Name.ParseProtoString(data); err != nil {
   159  				panic(err)
   160  			}
   161  		}
   162  	} else {
   163  		o.Name = nil
   164  	}
   165  	if source.GetRole() != nil {
   166  		if data, err := source.GetRole().ProtoString(); err != nil {
   167  			panic(err)
   168  		} else {
   169  			o.Role = &role.Reference{}
   170  			if err := o.Role.ParseProtoString(data); err != nil {
   171  				panic(err)
   172  			}
   173  		}
   174  	} else {
   175  		o.Role = nil
   176  	}
   177  	o.Member = source.GetMember()
   178  	if source.GetConditionBinding() != nil {
   179  		if o.ConditionBinding == nil {
   180  			o.ConditionBinding = new(condition.ConditionBinding)
   181  		}
   182  		o.ConditionBinding.Merge(source.GetConditionBinding())
   183  	}
   184  	for _, sourceValue := range source.GetAncestryPath() {
   185  		exists := false
   186  		for _, currentValue := range o.AncestryPath {
   187  			if proto.Equal(sourceValue, currentValue) {
   188  				exists = true
   189  				break
   190  			}
   191  		}
   192  		if !exists {
   193  			var newDstElement *RoleBinding_Parent
   194  			if sourceValue != nil {
   195  				newDstElement = new(RoleBinding_Parent)
   196  				newDstElement.Merge(sourceValue)
   197  			}
   198  			o.AncestryPath = append(o.AncestryPath, newDstElement)
   199  		}
   200  	}
   201  
   202  	if source.GetMetadata() != nil {
   203  		if o.Metadata == nil {
   204  			o.Metadata = new(meta.Meta)
   205  		}
   206  		o.Metadata.Merge(source.GetMetadata())
   207  	}
   208  }
   209  
   210  func (o *RoleBinding) MergeRaw(source gotenobject.GotenObjectExt) {
   211  	o.Merge(source.(*RoleBinding))
   212  }
   213  
   214  func (o *RoleBinding_Parent) GotenObjectExt() {}
   215  
   216  func (o *RoleBinding_Parent) MakeFullFieldMask() *RoleBinding_Parent_FieldMask {
   217  	return FullRoleBinding_Parent_FieldMask()
   218  }
   219  
   220  func (o *RoleBinding_Parent) MakeRawFullFieldMask() gotenobject.FieldMask {
   221  	return FullRoleBinding_Parent_FieldMask()
   222  }
   223  
   224  func (o *RoleBinding_Parent) MakeDiffFieldMask(other *RoleBinding_Parent) *RoleBinding_Parent_FieldMask {
   225  	if o == nil && other == nil {
   226  		return &RoleBinding_Parent_FieldMask{}
   227  	}
   228  	if o == nil || other == nil {
   229  		return FullRoleBinding_Parent_FieldMask()
   230  	}
   231  
   232  	res := &RoleBinding_Parent_FieldMask{}
   233  	if o.GetParent().String() != other.GetParent().String() {
   234  		res.Paths = append(res.Paths, &RoleBindingParent_FieldTerminalPath{selector: RoleBindingParent_FieldPathSelectorParent})
   235  	}
   236  	if o.GetMember() != other.GetMember() {
   237  		res.Paths = append(res.Paths, &RoleBindingParent_FieldTerminalPath{selector: RoleBindingParent_FieldPathSelectorMember})
   238  	}
   239  	return res
   240  }
   241  
   242  func (o *RoleBinding_Parent) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
   243  	return o.MakeDiffFieldMask(other.(*RoleBinding_Parent))
   244  }
   245  
   246  func (o *RoleBinding_Parent) Clone() *RoleBinding_Parent {
   247  	if o == nil {
   248  		return nil
   249  	}
   250  	result := &RoleBinding_Parent{}
   251  	if o.Parent == nil {
   252  		result.Parent = nil
   253  	} else if data, err := o.Parent.ProtoString(); err != nil {
   254  		panic(err)
   255  	} else {
   256  		result.Parent = &Reference{}
   257  		if err := result.Parent.ParseProtoString(data); err != nil {
   258  			panic(err)
   259  		}
   260  	}
   261  	result.Member = o.Member
   262  	return result
   263  }
   264  
   265  func (o *RoleBinding_Parent) CloneRaw() gotenobject.GotenObjectExt {
   266  	return o.Clone()
   267  }
   268  
   269  func (o *RoleBinding_Parent) Merge(source *RoleBinding_Parent) {
   270  	if source.GetParent() != nil {
   271  		if data, err := source.GetParent().ProtoString(); err != nil {
   272  			panic(err)
   273  		} else {
   274  			o.Parent = &Reference{}
   275  			if err := o.Parent.ParseProtoString(data); err != nil {
   276  				panic(err)
   277  			}
   278  		}
   279  	} else {
   280  		o.Parent = nil
   281  	}
   282  	o.Member = source.GetMember()
   283  }
   284  
   285  func (o *RoleBinding_Parent) MergeRaw(source gotenobject.GotenObjectExt) {
   286  	o.Merge(source.(*RoleBinding_Parent))
   287  }