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

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/iam/proto/v1alpha2/project.proto
     3  // DO NOT EDIT!!!
     4  
     5  package project
     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  	iam_common "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/common"
    20  	organization "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/organization"
    21  	meta_service "github.com/cloudwan/edgelq-sdk/meta/resources/v1alpha2/service"
    22  	meta "github.com/cloudwan/goten-sdk/types/meta"
    23  	multi_region_policy "github.com/cloudwan/goten-sdk/types/multi_region_policy"
    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  	_ = &iam_common.PCR{}
    40  	_ = &organization.Organization{}
    41  	_ = &meta_service.Service{}
    42  	_ = &meta.Meta{}
    43  	_ = &multi_region_policy.MultiRegionPolicy{}
    44  )
    45  
    46  func (o *Project) GotenObjectExt() {}
    47  
    48  func (o *Project) MakeFullFieldMask() *Project_FieldMask {
    49  	return FullProject_FieldMask()
    50  }
    51  
    52  func (o *Project) MakeRawFullFieldMask() gotenobject.FieldMask {
    53  	return FullProject_FieldMask()
    54  }
    55  
    56  func (o *Project) MakeDiffFieldMask(other *Project) *Project_FieldMask {
    57  	if o == nil && other == nil {
    58  		return &Project_FieldMask{}
    59  	}
    60  	if o == nil || other == nil {
    61  		return FullProject_FieldMask()
    62  	}
    63  
    64  	res := &Project_FieldMask{}
    65  	if o.GetName().String() != other.GetName().String() {
    66  		res.Paths = append(res.Paths, &Project_FieldTerminalPath{selector: Project_FieldPathSelectorName})
    67  	}
    68  	if o.GetTitle() != other.GetTitle() {
    69  		res.Paths = append(res.Paths, &Project_FieldTerminalPath{selector: Project_FieldPathSelectorTitle})
    70  	}
    71  	if o.GetParentOrganization().String() != other.GetParentOrganization().String() {
    72  		res.Paths = append(res.Paths, &Project_FieldTerminalPath{selector: Project_FieldPathSelectorParentOrganization})
    73  	}
    74  	if o.GetRootOrganization().String() != other.GetRootOrganization().String() {
    75  		res.Paths = append(res.Paths, &Project_FieldTerminalPath{selector: Project_FieldPathSelectorRootOrganization})
    76  	}
    77  
    78  	if len(o.GetAncestryPath()) == len(other.GetAncestryPath()) {
    79  		for i, lValue := range o.GetAncestryPath() {
    80  			rValue := other.GetAncestryPath()[i]
    81  			if lValue.String() != rValue.String() {
    82  				res.Paths = append(res.Paths, &Project_FieldTerminalPath{selector: Project_FieldPathSelectorAncestryPath})
    83  				break
    84  			}
    85  		}
    86  	} else {
    87  		res.Paths = append(res.Paths, &Project_FieldTerminalPath{selector: Project_FieldPathSelectorAncestryPath})
    88  	}
    89  	{
    90  		subMask := o.GetMetadata().MakeDiffFieldMask(other.GetMetadata())
    91  		if subMask.IsFull() {
    92  			res.Paths = append(res.Paths, &Project_FieldTerminalPath{selector: Project_FieldPathSelectorMetadata})
    93  		} else {
    94  			for _, subpath := range subMask.Paths {
    95  				res.Paths = append(res.Paths, &Project_FieldSubPath{selector: Project_FieldPathSelectorMetadata, subPath: subpath})
    96  			}
    97  		}
    98  	}
    99  	{
   100  		subMask := o.GetMultiRegionPolicy().MakeDiffFieldMask(other.GetMultiRegionPolicy())
   101  		if subMask.IsFull() {
   102  			res.Paths = append(res.Paths, &Project_FieldTerminalPath{selector: Project_FieldPathSelectorMultiRegionPolicy})
   103  		} else {
   104  			for _, subpath := range subMask.Paths {
   105  				res.Paths = append(res.Paths, &Project_FieldSubPath{selector: Project_FieldPathSelectorMultiRegionPolicy, subPath: subpath})
   106  			}
   107  		}
   108  	}
   109  
   110  	if len(o.GetEnabledServices()) == len(other.GetEnabledServices()) {
   111  		for i, lValue := range o.GetEnabledServices() {
   112  			rValue := other.GetEnabledServices()[i]
   113  			if lValue.String() != rValue.String() {
   114  				res.Paths = append(res.Paths, &Project_FieldTerminalPath{selector: Project_FieldPathSelectorEnabledServices})
   115  				break
   116  			}
   117  		}
   118  	} else {
   119  		res.Paths = append(res.Paths, &Project_FieldTerminalPath{selector: Project_FieldPathSelectorEnabledServices})
   120  	}
   121  	if o.GetBusinessTier() != other.GetBusinessTier() {
   122  		res.Paths = append(res.Paths, &Project_FieldTerminalPath{selector: Project_FieldPathSelectorBusinessTier})
   123  	}
   124  
   125  	if len(o.GetServiceTiers()) == len(other.GetServiceTiers()) {
   126  		for i, lValue := range o.GetServiceTiers() {
   127  			rValue := other.GetServiceTiers()[i]
   128  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
   129  				res.Paths = append(res.Paths, &Project_FieldTerminalPath{selector: Project_FieldPathSelectorServiceTiers})
   130  				break
   131  			}
   132  		}
   133  	} else {
   134  		res.Paths = append(res.Paths, &Project_FieldTerminalPath{selector: Project_FieldPathSelectorServiceTiers})
   135  	}
   136  
   137  	if len(o.GetServiceErrors()) == len(other.GetServiceErrors()) {
   138  		for i, lValue := range o.GetServiceErrors() {
   139  			rValue := other.GetServiceErrors()[i]
   140  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
   141  				res.Paths = append(res.Paths, &Project_FieldTerminalPath{selector: Project_FieldPathSelectorServiceErrors})
   142  				break
   143  			}
   144  		}
   145  	} else {
   146  		res.Paths = append(res.Paths, &Project_FieldTerminalPath{selector: Project_FieldPathSelectorServiceErrors})
   147  	}
   148  	return res
   149  }
   150  
   151  func (o *Project) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
   152  	return o.MakeDiffFieldMask(other.(*Project))
   153  }
   154  
   155  func (o *Project) Clone() *Project {
   156  	if o == nil {
   157  		return nil
   158  	}
   159  	result := &Project{}
   160  	if o.Name == nil {
   161  		result.Name = nil
   162  	} else if data, err := o.Name.ProtoString(); err != nil {
   163  		panic(err)
   164  	} else {
   165  		result.Name = &Name{}
   166  		if err := result.Name.ParseProtoString(data); err != nil {
   167  			panic(err)
   168  		}
   169  	}
   170  	result.Title = o.Title
   171  	if o.ParentOrganization == nil {
   172  		result.ParentOrganization = nil
   173  	} else if data, err := o.ParentOrganization.ProtoString(); err != nil {
   174  		panic(err)
   175  	} else {
   176  		result.ParentOrganization = &organization.Reference{}
   177  		if err := result.ParentOrganization.ParseProtoString(data); err != nil {
   178  			panic(err)
   179  		}
   180  	}
   181  	if o.RootOrganization == nil {
   182  		result.RootOrganization = nil
   183  	} else if data, err := o.RootOrganization.ProtoString(); err != nil {
   184  		panic(err)
   185  	} else {
   186  		result.RootOrganization = &organization.Reference{}
   187  		if err := result.RootOrganization.ParseProtoString(data); err != nil {
   188  			panic(err)
   189  		}
   190  	}
   191  	result.AncestryPath = make([]*organization.Reference, len(o.AncestryPath))
   192  	for i, sourceValue := range o.AncestryPath {
   193  		if sourceValue == nil {
   194  			result.AncestryPath[i] = nil
   195  		} else if data, err := sourceValue.ProtoString(); err != nil {
   196  			panic(err)
   197  		} else {
   198  			result.AncestryPath[i] = &organization.Reference{}
   199  			if err := result.AncestryPath[i].ParseProtoString(data); err != nil {
   200  				panic(err)
   201  			}
   202  		}
   203  	}
   204  	result.Metadata = o.Metadata.Clone()
   205  	result.MultiRegionPolicy = o.MultiRegionPolicy.Clone()
   206  	result.EnabledServices = make([]*meta_service.Reference, len(o.EnabledServices))
   207  	for i, sourceValue := range o.EnabledServices {
   208  		if sourceValue == nil {
   209  			result.EnabledServices[i] = nil
   210  		} else if data, err := sourceValue.ProtoString(); err != nil {
   211  			panic(err)
   212  		} else {
   213  			result.EnabledServices[i] = &meta_service.Reference{}
   214  			if err := result.EnabledServices[i].ParseProtoString(data); err != nil {
   215  				panic(err)
   216  			}
   217  		}
   218  	}
   219  	result.BusinessTier = o.BusinessTier
   220  	result.ServiceTiers = make([]*iam_common.ServiceBusinessTier, len(o.ServiceTiers))
   221  	for i, sourceValue := range o.ServiceTiers {
   222  		result.ServiceTiers[i] = sourceValue.Clone()
   223  	}
   224  	result.ServiceErrors = map[string]*iam_common.ServiceErrors{}
   225  	for key, sourceValue := range o.ServiceErrors {
   226  		result.ServiceErrors[key] = sourceValue.Clone()
   227  	}
   228  	return result
   229  }
   230  
   231  func (o *Project) CloneRaw() gotenobject.GotenObjectExt {
   232  	return o.Clone()
   233  }
   234  
   235  func (o *Project) Merge(source *Project) {
   236  	if source.GetName() != nil {
   237  		if data, err := source.GetName().ProtoString(); err != nil {
   238  			panic(err)
   239  		} else {
   240  			o.Name = &Name{}
   241  			if err := o.Name.ParseProtoString(data); err != nil {
   242  				panic(err)
   243  			}
   244  		}
   245  	} else {
   246  		o.Name = nil
   247  	}
   248  	o.Title = source.GetTitle()
   249  	if source.GetParentOrganization() != nil {
   250  		if data, err := source.GetParentOrganization().ProtoString(); err != nil {
   251  			panic(err)
   252  		} else {
   253  			o.ParentOrganization = &organization.Reference{}
   254  			if err := o.ParentOrganization.ParseProtoString(data); err != nil {
   255  				panic(err)
   256  			}
   257  		}
   258  	} else {
   259  		o.ParentOrganization = nil
   260  	}
   261  	if source.GetRootOrganization() != nil {
   262  		if data, err := source.GetRootOrganization().ProtoString(); err != nil {
   263  			panic(err)
   264  		} else {
   265  			o.RootOrganization = &organization.Reference{}
   266  			if err := o.RootOrganization.ParseProtoString(data); err != nil {
   267  				panic(err)
   268  			}
   269  		}
   270  	} else {
   271  		o.RootOrganization = nil
   272  	}
   273  	for _, sourceValue := range source.GetAncestryPath() {
   274  		exists := false
   275  		for _, currentValue := range o.AncestryPath {
   276  			leftProtoStr, _ := currentValue.ProtoString()
   277  			rightProtoStr, _ := sourceValue.ProtoString()
   278  			if leftProtoStr == rightProtoStr {
   279  				exists = true
   280  				break
   281  			}
   282  		}
   283  		if !exists {
   284  			var newDstElement *organization.Reference
   285  			if sourceValue != nil {
   286  				if data, err := sourceValue.ProtoString(); err != nil {
   287  					panic(err)
   288  				} else {
   289  					newDstElement = &organization.Reference{}
   290  					if err := newDstElement.ParseProtoString(data); err != nil {
   291  						panic(err)
   292  					}
   293  				}
   294  			}
   295  			o.AncestryPath = append(o.AncestryPath, newDstElement)
   296  		}
   297  	}
   298  
   299  	if source.GetMetadata() != nil {
   300  		if o.Metadata == nil {
   301  			o.Metadata = new(meta.Meta)
   302  		}
   303  		o.Metadata.Merge(source.GetMetadata())
   304  	}
   305  	if source.GetMultiRegionPolicy() != nil {
   306  		if o.MultiRegionPolicy == nil {
   307  			o.MultiRegionPolicy = new(multi_region_policy.MultiRegionPolicy)
   308  		}
   309  		o.MultiRegionPolicy.Merge(source.GetMultiRegionPolicy())
   310  	}
   311  	for _, sourceValue := range source.GetEnabledServices() {
   312  		exists := false
   313  		for _, currentValue := range o.EnabledServices {
   314  			leftProtoStr, _ := currentValue.ProtoString()
   315  			rightProtoStr, _ := sourceValue.ProtoString()
   316  			if leftProtoStr == rightProtoStr {
   317  				exists = true
   318  				break
   319  			}
   320  		}
   321  		if !exists {
   322  			var newDstElement *meta_service.Reference
   323  			if sourceValue != nil {
   324  				if data, err := sourceValue.ProtoString(); err != nil {
   325  					panic(err)
   326  				} else {
   327  					newDstElement = &meta_service.Reference{}
   328  					if err := newDstElement.ParseProtoString(data); err != nil {
   329  						panic(err)
   330  					}
   331  				}
   332  			}
   333  			o.EnabledServices = append(o.EnabledServices, newDstElement)
   334  		}
   335  	}
   336  
   337  	o.BusinessTier = source.GetBusinessTier()
   338  	for _, sourceValue := range source.GetServiceTiers() {
   339  		exists := false
   340  		for _, currentValue := range o.ServiceTiers {
   341  			if proto.Equal(sourceValue, currentValue) {
   342  				exists = true
   343  				break
   344  			}
   345  		}
   346  		if !exists {
   347  			var newDstElement *iam_common.ServiceBusinessTier
   348  			if sourceValue != nil {
   349  				newDstElement = new(iam_common.ServiceBusinessTier)
   350  				newDstElement.Merge(sourceValue)
   351  			}
   352  			o.ServiceTiers = append(o.ServiceTiers, newDstElement)
   353  		}
   354  	}
   355  
   356  	if source.GetServiceErrors() != nil {
   357  		if o.ServiceErrors == nil {
   358  			o.ServiceErrors = make(map[string]*iam_common.ServiceErrors, len(source.GetServiceErrors()))
   359  		}
   360  		for key, sourceValue := range source.GetServiceErrors() {
   361  			if sourceValue != nil {
   362  				if o.ServiceErrors[key] == nil {
   363  					o.ServiceErrors[key] = new(iam_common.ServiceErrors)
   364  				}
   365  				o.ServiceErrors[key].Merge(sourceValue)
   366  			}
   367  		}
   368  	}
   369  }
   370  
   371  func (o *Project) MergeRaw(source gotenobject.GotenObjectExt) {
   372  	o.Merge(source.(*Project))
   373  }