github.com/cloudwan/edgelq-sdk@v1.15.4/alerting/resources/v1/notifications/notification_msg.pb.object_ext.go (about)

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/alerting/proto/v1/notification_msg.proto
     3  // DO NOT EDIT!!!
     4  
     5  package notification_msg
     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  	alert "github.com/cloudwan/edgelq-sdk/alerting/resources/v1/alert"
    20  	rcommon "github.com/cloudwan/edgelq-sdk/alerting/resources/v1/common"
    21  	log_condition "github.com/cloudwan/edgelq-sdk/alerting/resources/v1/log_condition"
    22  	policy "github.com/cloudwan/edgelq-sdk/alerting/resources/v1/policy"
    23  	ts_condition "github.com/cloudwan/edgelq-sdk/alerting/resources/v1/ts_condition"
    24  	iam_organization "github.com/cloudwan/edgelq-sdk/iam/resources/v1/organization"
    25  	iam_project "github.com/cloudwan/edgelq-sdk/iam/resources/v1/project"
    26  	monitoring_common "github.com/cloudwan/edgelq-sdk/monitoring/resources/v4/common"
    27  	durationpb "google.golang.org/protobuf/types/known/durationpb"
    28  	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
    29  )
    30  
    31  // ensure the imports are used
    32  var (
    33  	_ = new(fmt.Stringer)
    34  	_ = new(sort.Interface)
    35  
    36  	_ = new(proto.Message)
    37  	_ = googlefieldmaskpb.FieldMask{}
    38  
    39  	_ = new(gotenobject.FieldPath)
    40  )
    41  
    42  // make sure we're using proto imports
    43  var (
    44  	_ = &alert.Alert{}
    45  	_ = &log_condition.LogCondition{}
    46  	_ = &policy.Policy{}
    47  	_ = &rcommon.LogCndSpec{}
    48  	_ = &ts_condition.TsCondition{}
    49  	_ = &iam_organization.Organization{}
    50  	_ = &iam_project.Project{}
    51  	_ = &monitoring_common.LabelDescriptor{}
    52  	_ = &durationpb.Duration{}
    53  	_ = &timestamppb.Timestamp{}
    54  )
    55  
    56  func (o *NotificationMsg) GotenObjectExt() {}
    57  
    58  func (o *NotificationMsg) MakeFullFieldMask() *NotificationMsg_FieldMask {
    59  	return FullNotificationMsg_FieldMask()
    60  }
    61  
    62  func (o *NotificationMsg) MakeRawFullFieldMask() gotenobject.FieldMask {
    63  	return FullNotificationMsg_FieldMask()
    64  }
    65  
    66  func (o *NotificationMsg) MakeDiffFieldMask(other *NotificationMsg) *NotificationMsg_FieldMask {
    67  	if o == nil && other == nil {
    68  		return &NotificationMsg_FieldMask{}
    69  	}
    70  	if o == nil || other == nil {
    71  		return FullNotificationMsg_FieldMask()
    72  	}
    73  
    74  	res := &NotificationMsg_FieldMask{}
    75  	if o.GetProjectFqn().String() != other.GetProjectFqn().String() {
    76  		res.Paths = append(res.Paths, &NotificationMsg_FieldTerminalPath{selector: NotificationMsg_FieldPathSelectorProjectFqn})
    77  	}
    78  	if o.GetProjectDisplayName() != other.GetProjectDisplayName() {
    79  		res.Paths = append(res.Paths, &NotificationMsg_FieldTerminalPath{selector: NotificationMsg_FieldPathSelectorProjectDisplayName})
    80  	}
    81  	if o.GetOrganizationFqn().String() != other.GetOrganizationFqn().String() {
    82  		res.Paths = append(res.Paths, &NotificationMsg_FieldTerminalPath{selector: NotificationMsg_FieldPathSelectorOrganizationFqn})
    83  	}
    84  	if o.GetOrganizationDisplayName() != other.GetOrganizationDisplayName() {
    85  		res.Paths = append(res.Paths, &NotificationMsg_FieldTerminalPath{selector: NotificationMsg_FieldPathSelectorOrganizationDisplayName})
    86  	}
    87  	if o.GetPolicyFqn().String() != other.GetPolicyFqn().String() {
    88  		res.Paths = append(res.Paths, &NotificationMsg_FieldTerminalPath{selector: NotificationMsg_FieldPathSelectorPolicyFqn})
    89  	}
    90  	if o.GetPolicyDisplayName() != other.GetPolicyDisplayName() {
    91  		res.Paths = append(res.Paths, &NotificationMsg_FieldTerminalPath{selector: NotificationMsg_FieldPathSelectorPolicyDisplayName})
    92  	}
    93  	{
    94  		subMask := o.GetNewFiringAlerts().MakeDiffFieldMask(other.GetNewFiringAlerts())
    95  		if subMask.IsFull() {
    96  			res.Paths = append(res.Paths, &NotificationMsg_FieldTerminalPath{selector: NotificationMsg_FieldPathSelectorNewFiringAlerts})
    97  		} else {
    98  			for _, subpath := range subMask.Paths {
    99  				res.Paths = append(res.Paths, &NotificationMsg_FieldSubPath{selector: NotificationMsg_FieldPathSelectorNewFiringAlerts, subPath: subpath})
   100  			}
   101  		}
   102  	}
   103  	{
   104  		subMask := o.GetAlertsEscalatedByAiToOperator().MakeDiffFieldMask(other.GetAlertsEscalatedByAiToOperator())
   105  		if subMask.IsFull() {
   106  			res.Paths = append(res.Paths, &NotificationMsg_FieldTerminalPath{selector: NotificationMsg_FieldPathSelectorAlertsEscalatedByAiToOperator})
   107  		} else {
   108  			for _, subpath := range subMask.Paths {
   109  				res.Paths = append(res.Paths, &NotificationMsg_FieldSubPath{selector: NotificationMsg_FieldPathSelectorAlertsEscalatedByAiToOperator, subPath: subpath})
   110  			}
   111  		}
   112  	}
   113  	{
   114  		subMask := o.GetAlertsAwaitingForApprovalWithAiRemediation().MakeDiffFieldMask(other.GetAlertsAwaitingForApprovalWithAiRemediation())
   115  		if subMask.IsFull() {
   116  			res.Paths = append(res.Paths, &NotificationMsg_FieldTerminalPath{selector: NotificationMsg_FieldPathSelectorAlertsAwaitingForApprovalWithAiRemediation})
   117  		} else {
   118  			for _, subpath := range subMask.Paths {
   119  				res.Paths = append(res.Paths, &NotificationMsg_FieldSubPath{selector: NotificationMsg_FieldPathSelectorAlertsAwaitingForApprovalWithAiRemediation, subPath: subpath})
   120  			}
   121  		}
   122  	}
   123  	{
   124  		subMask := o.GetAlertsFlaggedToIgnoreByAi().MakeDiffFieldMask(other.GetAlertsFlaggedToIgnoreByAi())
   125  		if subMask.IsFull() {
   126  			res.Paths = append(res.Paths, &NotificationMsg_FieldTerminalPath{selector: NotificationMsg_FieldPathSelectorAlertsFlaggedToIgnoreByAi})
   127  		} else {
   128  			for _, subpath := range subMask.Paths {
   129  				res.Paths = append(res.Paths, &NotificationMsg_FieldSubPath{selector: NotificationMsg_FieldPathSelectorAlertsFlaggedToIgnoreByAi, subPath: subpath})
   130  			}
   131  		}
   132  	}
   133  	{
   134  		subMask := o.GetAlertsWithConditionMarkedForAdjustingByAi().MakeDiffFieldMask(other.GetAlertsWithConditionMarkedForAdjustingByAi())
   135  		if subMask.IsFull() {
   136  			res.Paths = append(res.Paths, &NotificationMsg_FieldTerminalPath{selector: NotificationMsg_FieldPathSelectorAlertsWithConditionMarkedForAdjustingByAi})
   137  		} else {
   138  			for _, subpath := range subMask.Paths {
   139  				res.Paths = append(res.Paths, &NotificationMsg_FieldSubPath{selector: NotificationMsg_FieldPathSelectorAlertsWithConditionMarkedForAdjustingByAi, subPath: subpath})
   140  			}
   141  		}
   142  	}
   143  	{
   144  		subMask := o.GetAlertsWithAiRemediationApplied().MakeDiffFieldMask(other.GetAlertsWithAiRemediationApplied())
   145  		if subMask.IsFull() {
   146  			res.Paths = append(res.Paths, &NotificationMsg_FieldTerminalPath{selector: NotificationMsg_FieldPathSelectorAlertsWithAiRemediationApplied})
   147  		} else {
   148  			for _, subpath := range subMask.Paths {
   149  				res.Paths = append(res.Paths, &NotificationMsg_FieldSubPath{selector: NotificationMsg_FieldPathSelectorAlertsWithAiRemediationApplied, subPath: subpath})
   150  			}
   151  		}
   152  	}
   153  	{
   154  		subMask := o.GetAlertsWithOperatorRemediationApplied().MakeDiffFieldMask(other.GetAlertsWithOperatorRemediationApplied())
   155  		if subMask.IsFull() {
   156  			res.Paths = append(res.Paths, &NotificationMsg_FieldTerminalPath{selector: NotificationMsg_FieldPathSelectorAlertsWithOperatorRemediationApplied})
   157  		} else {
   158  			for _, subpath := range subMask.Paths {
   159  				res.Paths = append(res.Paths, &NotificationMsg_FieldSubPath{selector: NotificationMsg_FieldPathSelectorAlertsWithOperatorRemediationApplied, subPath: subpath})
   160  			}
   161  		}
   162  	}
   163  	{
   164  		subMask := o.GetStoppedAlerts().MakeDiffFieldMask(other.GetStoppedAlerts())
   165  		if subMask.IsFull() {
   166  			res.Paths = append(res.Paths, &NotificationMsg_FieldTerminalPath{selector: NotificationMsg_FieldPathSelectorStoppedAlerts})
   167  		} else {
   168  			for _, subpath := range subMask.Paths {
   169  				res.Paths = append(res.Paths, &NotificationMsg_FieldSubPath{selector: NotificationMsg_FieldPathSelectorStoppedAlerts, subPath: subpath})
   170  			}
   171  		}
   172  	}
   173  	return res
   174  }
   175  
   176  func (o *NotificationMsg) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
   177  	return o.MakeDiffFieldMask(other.(*NotificationMsg))
   178  }
   179  
   180  func (o *NotificationMsg) Clone() *NotificationMsg {
   181  	if o == nil {
   182  		return nil
   183  	}
   184  	result := &NotificationMsg{}
   185  	if o.ProjectFqn == nil {
   186  		result.ProjectFqn = nil
   187  	} else if data, err := o.ProjectFqn.ProtoString(); err != nil {
   188  		panic(err)
   189  	} else {
   190  		result.ProjectFqn = &iam_project.Name{}
   191  		if err := result.ProjectFqn.ParseProtoString(data); err != nil {
   192  			panic(err)
   193  		}
   194  	}
   195  	result.ProjectDisplayName = o.ProjectDisplayName
   196  	if o.OrganizationFqn == nil {
   197  		result.OrganizationFqn = nil
   198  	} else if data, err := o.OrganizationFqn.ProtoString(); err != nil {
   199  		panic(err)
   200  	} else {
   201  		result.OrganizationFqn = &iam_organization.Name{}
   202  		if err := result.OrganizationFqn.ParseProtoString(data); err != nil {
   203  			panic(err)
   204  		}
   205  	}
   206  	result.OrganizationDisplayName = o.OrganizationDisplayName
   207  	if o.PolicyFqn == nil {
   208  		result.PolicyFqn = nil
   209  	} else if data, err := o.PolicyFqn.ProtoString(); err != nil {
   210  		panic(err)
   211  	} else {
   212  		result.PolicyFqn = &policy.Name{}
   213  		if err := result.PolicyFqn.ParseProtoString(data); err != nil {
   214  			panic(err)
   215  		}
   216  	}
   217  	result.PolicyDisplayName = o.PolicyDisplayName
   218  	result.NewFiringAlerts = o.NewFiringAlerts.Clone()
   219  	result.AlertsEscalatedByAiToOperator = o.AlertsEscalatedByAiToOperator.Clone()
   220  	result.AlertsAwaitingForApprovalWithAiRemediation = o.AlertsAwaitingForApprovalWithAiRemediation.Clone()
   221  	result.AlertsFlaggedToIgnoreByAi = o.AlertsFlaggedToIgnoreByAi.Clone()
   222  	result.AlertsWithConditionMarkedForAdjustingByAi = o.AlertsWithConditionMarkedForAdjustingByAi.Clone()
   223  	result.AlertsWithAiRemediationApplied = o.AlertsWithAiRemediationApplied.Clone()
   224  	result.AlertsWithOperatorRemediationApplied = o.AlertsWithOperatorRemediationApplied.Clone()
   225  	result.StoppedAlerts = o.StoppedAlerts.Clone()
   226  	return result
   227  }
   228  
   229  func (o *NotificationMsg) CloneRaw() gotenobject.GotenObjectExt {
   230  	return o.Clone()
   231  }
   232  
   233  func (o *NotificationMsg) Merge(source *NotificationMsg) {
   234  	if source.GetProjectFqn() != nil {
   235  		if data, err := source.GetProjectFqn().ProtoString(); err != nil {
   236  			panic(err)
   237  		} else {
   238  			o.ProjectFqn = &iam_project.Name{}
   239  			if err := o.ProjectFqn.ParseProtoString(data); err != nil {
   240  				panic(err)
   241  			}
   242  		}
   243  	} else {
   244  		o.ProjectFqn = nil
   245  	}
   246  	o.ProjectDisplayName = source.GetProjectDisplayName()
   247  	if source.GetOrganizationFqn() != nil {
   248  		if data, err := source.GetOrganizationFqn().ProtoString(); err != nil {
   249  			panic(err)
   250  		} else {
   251  			o.OrganizationFqn = &iam_organization.Name{}
   252  			if err := o.OrganizationFqn.ParseProtoString(data); err != nil {
   253  				panic(err)
   254  			}
   255  		}
   256  	} else {
   257  		o.OrganizationFqn = nil
   258  	}
   259  	o.OrganizationDisplayName = source.GetOrganizationDisplayName()
   260  	if source.GetPolicyFqn() != nil {
   261  		if data, err := source.GetPolicyFqn().ProtoString(); err != nil {
   262  			panic(err)
   263  		} else {
   264  			o.PolicyFqn = &policy.Name{}
   265  			if err := o.PolicyFqn.ParseProtoString(data); err != nil {
   266  				panic(err)
   267  			}
   268  		}
   269  	} else {
   270  		o.PolicyFqn = nil
   271  	}
   272  	o.PolicyDisplayName = source.GetPolicyDisplayName()
   273  	if source.GetNewFiringAlerts() != nil {
   274  		if o.NewFiringAlerts == nil {
   275  			o.NewFiringAlerts = new(NotificationMsg_AlertsGroup)
   276  		}
   277  		o.NewFiringAlerts.Merge(source.GetNewFiringAlerts())
   278  	}
   279  	if source.GetAlertsEscalatedByAiToOperator() != nil {
   280  		if o.AlertsEscalatedByAiToOperator == nil {
   281  			o.AlertsEscalatedByAiToOperator = new(NotificationMsg_AlertsGroup)
   282  		}
   283  		o.AlertsEscalatedByAiToOperator.Merge(source.GetAlertsEscalatedByAiToOperator())
   284  	}
   285  	if source.GetAlertsAwaitingForApprovalWithAiRemediation() != nil {
   286  		if o.AlertsAwaitingForApprovalWithAiRemediation == nil {
   287  			o.AlertsAwaitingForApprovalWithAiRemediation = new(NotificationMsg_AlertsGroup)
   288  		}
   289  		o.AlertsAwaitingForApprovalWithAiRemediation.Merge(source.GetAlertsAwaitingForApprovalWithAiRemediation())
   290  	}
   291  	if source.GetAlertsFlaggedToIgnoreByAi() != nil {
   292  		if o.AlertsFlaggedToIgnoreByAi == nil {
   293  			o.AlertsFlaggedToIgnoreByAi = new(NotificationMsg_AlertsGroup)
   294  		}
   295  		o.AlertsFlaggedToIgnoreByAi.Merge(source.GetAlertsFlaggedToIgnoreByAi())
   296  	}
   297  	if source.GetAlertsWithConditionMarkedForAdjustingByAi() != nil {
   298  		if o.AlertsWithConditionMarkedForAdjustingByAi == nil {
   299  			o.AlertsWithConditionMarkedForAdjustingByAi = new(NotificationMsg_AlertsGroup)
   300  		}
   301  		o.AlertsWithConditionMarkedForAdjustingByAi.Merge(source.GetAlertsWithConditionMarkedForAdjustingByAi())
   302  	}
   303  	if source.GetAlertsWithAiRemediationApplied() != nil {
   304  		if o.AlertsWithAiRemediationApplied == nil {
   305  			o.AlertsWithAiRemediationApplied = new(NotificationMsg_AlertsGroup)
   306  		}
   307  		o.AlertsWithAiRemediationApplied.Merge(source.GetAlertsWithAiRemediationApplied())
   308  	}
   309  	if source.GetAlertsWithOperatorRemediationApplied() != nil {
   310  		if o.AlertsWithOperatorRemediationApplied == nil {
   311  			o.AlertsWithOperatorRemediationApplied = new(NotificationMsg_AlertsGroup)
   312  		}
   313  		o.AlertsWithOperatorRemediationApplied.Merge(source.GetAlertsWithOperatorRemediationApplied())
   314  	}
   315  	if source.GetStoppedAlerts() != nil {
   316  		if o.StoppedAlerts == nil {
   317  			o.StoppedAlerts = new(NotificationMsg_AlertsGroup)
   318  		}
   319  		o.StoppedAlerts.Merge(source.GetStoppedAlerts())
   320  	}
   321  }
   322  
   323  func (o *NotificationMsg) MergeRaw(source gotenobject.GotenObjectExt) {
   324  	o.Merge(source.(*NotificationMsg))
   325  }
   326  
   327  func (o *NotificationMsg_AlertsGroup) GotenObjectExt() {}
   328  
   329  func (o *NotificationMsg_AlertsGroup) MakeFullFieldMask() *NotificationMsg_AlertsGroup_FieldMask {
   330  	return FullNotificationMsg_AlertsGroup_FieldMask()
   331  }
   332  
   333  func (o *NotificationMsg_AlertsGroup) MakeRawFullFieldMask() gotenobject.FieldMask {
   334  	return FullNotificationMsg_AlertsGroup_FieldMask()
   335  }
   336  
   337  func (o *NotificationMsg_AlertsGroup) MakeDiffFieldMask(other *NotificationMsg_AlertsGroup) *NotificationMsg_AlertsGroup_FieldMask {
   338  	if o == nil && other == nil {
   339  		return &NotificationMsg_AlertsGroup_FieldMask{}
   340  	}
   341  	if o == nil || other == nil {
   342  		return FullNotificationMsg_AlertsGroup_FieldMask()
   343  	}
   344  
   345  	res := &NotificationMsg_AlertsGroup_FieldMask{}
   346  
   347  	if len(o.GetByCondition()) == len(other.GetByCondition()) {
   348  		for i, lValue := range o.GetByCondition() {
   349  			rValue := other.GetByCondition()[i]
   350  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
   351  				res.Paths = append(res.Paths, &NotificationMsgAlertsGroup_FieldTerminalPath{selector: NotificationMsgAlertsGroup_FieldPathSelectorByCondition})
   352  				break
   353  			}
   354  		}
   355  	} else {
   356  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroup_FieldTerminalPath{selector: NotificationMsgAlertsGroup_FieldPathSelectorByCondition})
   357  	}
   358  	return res
   359  }
   360  
   361  func (o *NotificationMsg_AlertsGroup) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
   362  	return o.MakeDiffFieldMask(other.(*NotificationMsg_AlertsGroup))
   363  }
   364  
   365  func (o *NotificationMsg_AlertsGroup) Clone() *NotificationMsg_AlertsGroup {
   366  	if o == nil {
   367  		return nil
   368  	}
   369  	result := &NotificationMsg_AlertsGroup{}
   370  	result.ByCondition = make([]*NotificationMsg_AlertsGroup_ConditionAlerts, len(o.ByCondition))
   371  	for i, sourceValue := range o.ByCondition {
   372  		result.ByCondition[i] = sourceValue.Clone()
   373  	}
   374  	return result
   375  }
   376  
   377  func (o *NotificationMsg_AlertsGroup) CloneRaw() gotenobject.GotenObjectExt {
   378  	return o.Clone()
   379  }
   380  
   381  func (o *NotificationMsg_AlertsGroup) Merge(source *NotificationMsg_AlertsGroup) {
   382  	for _, sourceValue := range source.GetByCondition() {
   383  		exists := false
   384  		for _, currentValue := range o.ByCondition {
   385  			if proto.Equal(sourceValue, currentValue) {
   386  				exists = true
   387  				break
   388  			}
   389  		}
   390  		if !exists {
   391  			var newDstElement *NotificationMsg_AlertsGroup_ConditionAlerts
   392  			if sourceValue != nil {
   393  				newDstElement = new(NotificationMsg_AlertsGroup_ConditionAlerts)
   394  				newDstElement.Merge(sourceValue)
   395  			}
   396  			o.ByCondition = append(o.ByCondition, newDstElement)
   397  		}
   398  	}
   399  
   400  }
   401  
   402  func (o *NotificationMsg_AlertsGroup) MergeRaw(source gotenobject.GotenObjectExt) {
   403  	o.Merge(source.(*NotificationMsg_AlertsGroup))
   404  }
   405  
   406  func (o *NotificationMsg_AlertsGroup_ConditionAlerts) GotenObjectExt() {}
   407  
   408  func (o *NotificationMsg_AlertsGroup_ConditionAlerts) MakeFullFieldMask() *NotificationMsg_AlertsGroup_ConditionAlerts_FieldMask {
   409  	return FullNotificationMsg_AlertsGroup_ConditionAlerts_FieldMask()
   410  }
   411  
   412  func (o *NotificationMsg_AlertsGroup_ConditionAlerts) MakeRawFullFieldMask() gotenobject.FieldMask {
   413  	return FullNotificationMsg_AlertsGroup_ConditionAlerts_FieldMask()
   414  }
   415  
   416  func (o *NotificationMsg_AlertsGroup_ConditionAlerts) MakeDiffFieldMask(other *NotificationMsg_AlertsGroup_ConditionAlerts) *NotificationMsg_AlertsGroup_ConditionAlerts_FieldMask {
   417  	if o == nil && other == nil {
   418  		return &NotificationMsg_AlertsGroup_ConditionAlerts_FieldMask{}
   419  	}
   420  	if o == nil || other == nil {
   421  		return FullNotificationMsg_AlertsGroup_ConditionAlerts_FieldMask()
   422  	}
   423  
   424  	res := &NotificationMsg_AlertsGroup_ConditionAlerts_FieldMask{}
   425  	{
   426  		_, leftSelected := o.Type.(*NotificationMsg_AlertsGroup_ConditionAlerts_TimeSeriesCondition)
   427  		_, rightSelected := other.Type.(*NotificationMsg_AlertsGroup_ConditionAlerts_TimeSeriesCondition)
   428  		if leftSelected == rightSelected {
   429  			subMask := o.GetTimeSeriesCondition().MakeDiffFieldMask(other.GetTimeSeriesCondition())
   430  			if subMask.IsFull() {
   431  				res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlerts_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlerts_FieldPathSelectorTimeSeriesCondition})
   432  			} else {
   433  				for _, subpath := range subMask.Paths {
   434  					res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlerts_FieldSubPath{selector: NotificationMsgAlertsGroupConditionAlerts_FieldPathSelectorTimeSeriesCondition, subPath: subpath})
   435  				}
   436  			}
   437  		} else {
   438  			res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlerts_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlerts_FieldPathSelectorTimeSeriesCondition})
   439  		}
   440  	}
   441  	{
   442  		_, leftSelected := o.Type.(*NotificationMsg_AlertsGroup_ConditionAlerts_LogCondition)
   443  		_, rightSelected := other.Type.(*NotificationMsg_AlertsGroup_ConditionAlerts_LogCondition)
   444  		if leftSelected == rightSelected {
   445  			subMask := o.GetLogCondition().MakeDiffFieldMask(other.GetLogCondition())
   446  			if subMask.IsFull() {
   447  				res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlerts_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlerts_FieldPathSelectorLogCondition})
   448  			} else {
   449  				for _, subpath := range subMask.Paths {
   450  					res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlerts_FieldSubPath{selector: NotificationMsgAlertsGroupConditionAlerts_FieldPathSelectorLogCondition, subPath: subpath})
   451  				}
   452  			}
   453  		} else {
   454  			res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlerts_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlerts_FieldPathSelectorLogCondition})
   455  		}
   456  	}
   457  
   458  	if len(o.GetAlerts()) == len(other.GetAlerts()) {
   459  		for i, lValue := range o.GetAlerts() {
   460  			rValue := other.GetAlerts()[i]
   461  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
   462  				res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlerts_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlerts_FieldPathSelectorAlerts})
   463  				break
   464  			}
   465  		}
   466  	} else {
   467  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlerts_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlerts_FieldPathSelectorAlerts})
   468  	}
   469  	if o.GetMoreAlertsCount() != other.GetMoreAlertsCount() {
   470  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlerts_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlerts_FieldPathSelectorMoreAlertsCount})
   471  	}
   472  	return res
   473  }
   474  
   475  func (o *NotificationMsg_AlertsGroup_ConditionAlerts) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
   476  	return o.MakeDiffFieldMask(other.(*NotificationMsg_AlertsGroup_ConditionAlerts))
   477  }
   478  
   479  func (o *NotificationMsg_AlertsGroup_ConditionAlerts) Clone() *NotificationMsg_AlertsGroup_ConditionAlerts {
   480  	if o == nil {
   481  		return nil
   482  	}
   483  	result := &NotificationMsg_AlertsGroup_ConditionAlerts{}
   484  	if o, ok := o.Type.(*NotificationMsg_AlertsGroup_ConditionAlerts_TimeSeriesCondition); ok {
   485  		result.Type = (*NotificationMsg_AlertsGroup_ConditionAlerts_TimeSeriesCondition)(nil)
   486  		if o != nil {
   487  			result.Type = &NotificationMsg_AlertsGroup_ConditionAlerts_TimeSeriesCondition{}
   488  			result := result.Type.(*NotificationMsg_AlertsGroup_ConditionAlerts_TimeSeriesCondition)
   489  			result.TimeSeriesCondition = o.TimeSeriesCondition.Clone()
   490  		}
   491  	}
   492  	if o, ok := o.Type.(*NotificationMsg_AlertsGroup_ConditionAlerts_LogCondition); ok {
   493  		result.Type = (*NotificationMsg_AlertsGroup_ConditionAlerts_LogCondition)(nil)
   494  		if o != nil {
   495  			result.Type = &NotificationMsg_AlertsGroup_ConditionAlerts_LogCondition{}
   496  			result := result.Type.(*NotificationMsg_AlertsGroup_ConditionAlerts_LogCondition)
   497  			result.LogCondition = o.LogCondition.Clone()
   498  		}
   499  	}
   500  	result.Alerts = make([]*NotificationMsg_AlertsGroup_ConditionAlerts_Alert, len(o.Alerts))
   501  	for i, sourceValue := range o.Alerts {
   502  		result.Alerts[i] = sourceValue.Clone()
   503  	}
   504  	result.MoreAlertsCount = o.MoreAlertsCount
   505  	return result
   506  }
   507  
   508  func (o *NotificationMsg_AlertsGroup_ConditionAlerts) CloneRaw() gotenobject.GotenObjectExt {
   509  	return o.Clone()
   510  }
   511  
   512  func (o *NotificationMsg_AlertsGroup_ConditionAlerts) Merge(source *NotificationMsg_AlertsGroup_ConditionAlerts) {
   513  	if source, ok := source.GetType().(*NotificationMsg_AlertsGroup_ConditionAlerts_TimeSeriesCondition); ok {
   514  		if dstOneOf, ok := o.Type.(*NotificationMsg_AlertsGroup_ConditionAlerts_TimeSeriesCondition); !ok || dstOneOf == nil {
   515  			o.Type = &NotificationMsg_AlertsGroup_ConditionAlerts_TimeSeriesCondition{}
   516  		}
   517  		if source != nil {
   518  			o := o.Type.(*NotificationMsg_AlertsGroup_ConditionAlerts_TimeSeriesCondition)
   519  			if source.TimeSeriesCondition != nil {
   520  				if o.TimeSeriesCondition == nil {
   521  					o.TimeSeriesCondition = new(NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType)
   522  				}
   523  				o.TimeSeriesCondition.Merge(source.TimeSeriesCondition)
   524  			}
   525  		}
   526  	}
   527  	if source, ok := source.GetType().(*NotificationMsg_AlertsGroup_ConditionAlerts_LogCondition); ok {
   528  		if dstOneOf, ok := o.Type.(*NotificationMsg_AlertsGroup_ConditionAlerts_LogCondition); !ok || dstOneOf == nil {
   529  			o.Type = &NotificationMsg_AlertsGroup_ConditionAlerts_LogCondition{}
   530  		}
   531  		if source != nil {
   532  			o := o.Type.(*NotificationMsg_AlertsGroup_ConditionAlerts_LogCondition)
   533  			if source.LogCondition != nil {
   534  				if o.LogCondition == nil {
   535  					o.LogCondition = new(NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType)
   536  				}
   537  				o.LogCondition.Merge(source.LogCondition)
   538  			}
   539  		}
   540  	}
   541  	for _, sourceValue := range source.GetAlerts() {
   542  		exists := false
   543  		for _, currentValue := range o.Alerts {
   544  			if proto.Equal(sourceValue, currentValue) {
   545  				exists = true
   546  				break
   547  			}
   548  		}
   549  		if !exists {
   550  			var newDstElement *NotificationMsg_AlertsGroup_ConditionAlerts_Alert
   551  			if sourceValue != nil {
   552  				newDstElement = new(NotificationMsg_AlertsGroup_ConditionAlerts_Alert)
   553  				newDstElement.Merge(sourceValue)
   554  			}
   555  			o.Alerts = append(o.Alerts, newDstElement)
   556  		}
   557  	}
   558  
   559  	o.MoreAlertsCount = source.GetMoreAlertsCount()
   560  }
   561  
   562  func (o *NotificationMsg_AlertsGroup_ConditionAlerts) MergeRaw(source gotenobject.GotenObjectExt) {
   563  	o.Merge(source.(*NotificationMsg_AlertsGroup_ConditionAlerts))
   564  }
   565  
   566  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType) GotenObjectExt() {}
   567  
   568  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType) MakeFullFieldMask() *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_FieldMask {
   569  	return FullNotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_FieldMask()
   570  }
   571  
   572  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType) MakeRawFullFieldMask() gotenobject.FieldMask {
   573  	return FullNotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_FieldMask()
   574  }
   575  
   576  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType) MakeDiffFieldMask(other *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType) *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_FieldMask {
   577  	if o == nil && other == nil {
   578  		return &NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_FieldMask{}
   579  	}
   580  	if o == nil || other == nil {
   581  		return FullNotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_FieldMask()
   582  	}
   583  
   584  	res := &NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_FieldMask{}
   585  	if o.GetFqn().String() != other.GetFqn().String() {
   586  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsTsCndType_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsTsCndType_FieldPathSelectorFqn})
   587  	}
   588  	if o.GetDisplayName() != other.GetDisplayName() {
   589  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsTsCndType_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsTsCndType_FieldPathSelectorDisplayName})
   590  	}
   591  
   592  	if len(o.GetQueries()) == len(other.GetQueries()) {
   593  		for i, lValue := range o.GetQueries() {
   594  			rValue := other.GetQueries()[i]
   595  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
   596  				res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsTsCndType_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsTsCndType_FieldPathSelectorQueries})
   597  				break
   598  			}
   599  		}
   600  	} else {
   601  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsTsCndType_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsTsCndType_FieldPathSelectorQueries})
   602  	}
   603  	return res
   604  }
   605  
   606  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
   607  	return o.MakeDiffFieldMask(other.(*NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType))
   608  }
   609  
   610  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType) Clone() *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType {
   611  	if o == nil {
   612  		return nil
   613  	}
   614  	result := &NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType{}
   615  	if o.Fqn == nil {
   616  		result.Fqn = nil
   617  	} else if data, err := o.Fqn.ProtoString(); err != nil {
   618  		panic(err)
   619  	} else {
   620  		result.Fqn = &ts_condition.Name{}
   621  		if err := result.Fqn.ParseProtoString(data); err != nil {
   622  			panic(err)
   623  		}
   624  	}
   625  	result.DisplayName = o.DisplayName
   626  	result.Queries = make([]*NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_Query, len(o.Queries))
   627  	for i, sourceValue := range o.Queries {
   628  		result.Queries[i] = sourceValue.Clone()
   629  	}
   630  	return result
   631  }
   632  
   633  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType) CloneRaw() gotenobject.GotenObjectExt {
   634  	return o.Clone()
   635  }
   636  
   637  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType) Merge(source *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType) {
   638  	if source.GetFqn() != nil {
   639  		if data, err := source.GetFqn().ProtoString(); err != nil {
   640  			panic(err)
   641  		} else {
   642  			o.Fqn = &ts_condition.Name{}
   643  			if err := o.Fqn.ParseProtoString(data); err != nil {
   644  				panic(err)
   645  			}
   646  		}
   647  	} else {
   648  		o.Fqn = nil
   649  	}
   650  	o.DisplayName = source.GetDisplayName()
   651  	for _, sourceValue := range source.GetQueries() {
   652  		exists := false
   653  		for _, currentValue := range o.Queries {
   654  			if proto.Equal(sourceValue, currentValue) {
   655  				exists = true
   656  				break
   657  			}
   658  		}
   659  		if !exists {
   660  			var newDstElement *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_Query
   661  			if sourceValue != nil {
   662  				newDstElement = new(NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_Query)
   663  				newDstElement.Merge(sourceValue)
   664  			}
   665  			o.Queries = append(o.Queries, newDstElement)
   666  		}
   667  	}
   668  
   669  }
   670  
   671  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType) MergeRaw(source gotenobject.GotenObjectExt) {
   672  	o.Merge(source.(*NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType))
   673  }
   674  
   675  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType) GotenObjectExt() {}
   676  
   677  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType) MakeFullFieldMask() *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_FieldMask {
   678  	return FullNotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_FieldMask()
   679  }
   680  
   681  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType) MakeRawFullFieldMask() gotenobject.FieldMask {
   682  	return FullNotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_FieldMask()
   683  }
   684  
   685  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType) MakeDiffFieldMask(other *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType) *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_FieldMask {
   686  	if o == nil && other == nil {
   687  		return &NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_FieldMask{}
   688  	}
   689  	if o == nil || other == nil {
   690  		return FullNotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_FieldMask()
   691  	}
   692  
   693  	res := &NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_FieldMask{}
   694  	if o.GetFqn().String() != other.GetFqn().String() {
   695  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsLogCndType_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsLogCndType_FieldPathSelectorFqn})
   696  	}
   697  	if o.GetDisplayName() != other.GetDisplayName() {
   698  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsLogCndType_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsLogCndType_FieldPathSelectorDisplayName})
   699  	}
   700  
   701  	if len(o.GetQueries()) == len(other.GetQueries()) {
   702  		for i, lValue := range o.GetQueries() {
   703  			rValue := other.GetQueries()[i]
   704  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
   705  				res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsLogCndType_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsLogCndType_FieldPathSelectorQueries})
   706  				break
   707  			}
   708  		}
   709  	} else {
   710  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsLogCndType_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsLogCndType_FieldPathSelectorQueries})
   711  	}
   712  	return res
   713  }
   714  
   715  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
   716  	return o.MakeDiffFieldMask(other.(*NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType))
   717  }
   718  
   719  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType) Clone() *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType {
   720  	if o == nil {
   721  		return nil
   722  	}
   723  	result := &NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType{}
   724  	if o.Fqn == nil {
   725  		result.Fqn = nil
   726  	} else if data, err := o.Fqn.ProtoString(); err != nil {
   727  		panic(err)
   728  	} else {
   729  		result.Fqn = &log_condition.Name{}
   730  		if err := result.Fqn.ParseProtoString(data); err != nil {
   731  			panic(err)
   732  		}
   733  	}
   734  	result.DisplayName = o.DisplayName
   735  	result.Queries = make([]*NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_Query, len(o.Queries))
   736  	for i, sourceValue := range o.Queries {
   737  		result.Queries[i] = sourceValue.Clone()
   738  	}
   739  	return result
   740  }
   741  
   742  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType) CloneRaw() gotenobject.GotenObjectExt {
   743  	return o.Clone()
   744  }
   745  
   746  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType) Merge(source *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType) {
   747  	if source.GetFqn() != nil {
   748  		if data, err := source.GetFqn().ProtoString(); err != nil {
   749  			panic(err)
   750  		} else {
   751  			o.Fqn = &log_condition.Name{}
   752  			if err := o.Fqn.ParseProtoString(data); err != nil {
   753  				panic(err)
   754  			}
   755  		}
   756  	} else {
   757  		o.Fqn = nil
   758  	}
   759  	o.DisplayName = source.GetDisplayName()
   760  	for _, sourceValue := range source.GetQueries() {
   761  		exists := false
   762  		for _, currentValue := range o.Queries {
   763  			if proto.Equal(sourceValue, currentValue) {
   764  				exists = true
   765  				break
   766  			}
   767  		}
   768  		if !exists {
   769  			var newDstElement *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_Query
   770  			if sourceValue != nil {
   771  				newDstElement = new(NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_Query)
   772  				newDstElement.Merge(sourceValue)
   773  			}
   774  			o.Queries = append(o.Queries, newDstElement)
   775  		}
   776  	}
   777  
   778  }
   779  
   780  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType) MergeRaw(source gotenobject.GotenObjectExt) {
   781  	o.Merge(source.(*NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType))
   782  }
   783  
   784  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert) GotenObjectExt() {}
   785  
   786  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert) MakeFullFieldMask() *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_FieldMask {
   787  	return FullNotificationMsg_AlertsGroup_ConditionAlerts_Alert_FieldMask()
   788  }
   789  
   790  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert) MakeRawFullFieldMask() gotenobject.FieldMask {
   791  	return FullNotificationMsg_AlertsGroup_ConditionAlerts_Alert_FieldMask()
   792  }
   793  
   794  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert) MakeDiffFieldMask(other *NotificationMsg_AlertsGroup_ConditionAlerts_Alert) *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_FieldMask {
   795  	if o == nil && other == nil {
   796  		return &NotificationMsg_AlertsGroup_ConditionAlerts_Alert_FieldMask{}
   797  	}
   798  	if o == nil || other == nil {
   799  		return FullNotificationMsg_AlertsGroup_ConditionAlerts_Alert_FieldMask()
   800  	}
   801  
   802  	res := &NotificationMsg_AlertsGroup_ConditionAlerts_Alert_FieldMask{}
   803  	if o.GetType() != other.GetType() {
   804  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlert_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlert_FieldPathSelectorType})
   805  	}
   806  	if o.GetFqn().String() != other.GetFqn().String() {
   807  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlert_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlert_FieldPathSelectorFqn})
   808  	}
   809  	if o.GetDisplayName() != other.GetDisplayName() {
   810  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlert_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlert_FieldPathSelectorDisplayName})
   811  	}
   812  	if o.GetIsFiring() != other.GetIsFiring() {
   813  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlert_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlert_FieldPathSelectorIsFiring})
   814  	}
   815  	if !proto.Equal(o.GetStartTime(), other.GetStartTime()) {
   816  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlert_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlert_FieldPathSelectorStartTime})
   817  	}
   818  	if !proto.Equal(o.GetStopTime(), other.GetStopTime()) {
   819  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlert_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlert_FieldPathSelectorStopTime})
   820  	}
   821  	{
   822  		subMask := o.GetIdentification().MakeDiffFieldMask(other.GetIdentification())
   823  		if subMask.IsFull() {
   824  			res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlert_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlert_FieldPathSelectorIdentification})
   825  		} else {
   826  			for _, subpath := range subMask.Paths {
   827  				res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlert_FieldSubPath{selector: NotificationMsgAlertsGroupConditionAlertsAlert_FieldPathSelectorIdentification, subPath: subpath})
   828  			}
   829  		}
   830  	}
   831  	{
   832  		subMask := o.GetViolationInfo().MakeDiffFieldMask(other.GetViolationInfo())
   833  		if subMask.IsFull() {
   834  			res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlert_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlert_FieldPathSelectorViolationInfo})
   835  		} else {
   836  			for _, subpath := range subMask.Paths {
   837  				res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlert_FieldSubPath{selector: NotificationMsgAlertsGroupConditionAlertsAlert_FieldPathSelectorViolationInfo, subPath: subpath})
   838  			}
   839  		}
   840  	}
   841  	if o.GetEscalationLevel() != other.GetEscalationLevel() {
   842  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlert_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlert_FieldPathSelectorEscalationLevel})
   843  	}
   844  	{
   845  		subMask := o.GetAiHandling().MakeDiffFieldMask(other.GetAiHandling())
   846  		if subMask.IsFull() {
   847  			res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlert_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlert_FieldPathSelectorAiHandling})
   848  		} else {
   849  			for _, subpath := range subMask.Paths {
   850  				res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlert_FieldSubPath{selector: NotificationMsgAlertsGroupConditionAlertsAlert_FieldPathSelectorAiHandling, subPath: subpath})
   851  			}
   852  		}
   853  	}
   854  	{
   855  		subMask := o.GetOperatorHandling().MakeDiffFieldMask(other.GetOperatorHandling())
   856  		if subMask.IsFull() {
   857  			res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlert_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlert_FieldPathSelectorOperatorHandling})
   858  		} else {
   859  			for _, subpath := range subMask.Paths {
   860  				res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlert_FieldSubPath{selector: NotificationMsgAlertsGroupConditionAlertsAlert_FieldPathSelectorOperatorHandling, subPath: subpath})
   861  			}
   862  		}
   863  	}
   864  	return res
   865  }
   866  
   867  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
   868  	return o.MakeDiffFieldMask(other.(*NotificationMsg_AlertsGroup_ConditionAlerts_Alert))
   869  }
   870  
   871  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert) Clone() *NotificationMsg_AlertsGroup_ConditionAlerts_Alert {
   872  	if o == nil {
   873  		return nil
   874  	}
   875  	result := &NotificationMsg_AlertsGroup_ConditionAlerts_Alert{}
   876  	result.Type = o.Type
   877  	if o.Fqn == nil {
   878  		result.Fqn = nil
   879  	} else if data, err := o.Fqn.ProtoString(); err != nil {
   880  		panic(err)
   881  	} else {
   882  		result.Fqn = &alert.Name{}
   883  		if err := result.Fqn.ParseProtoString(data); err != nil {
   884  			panic(err)
   885  		}
   886  	}
   887  	result.DisplayName = o.DisplayName
   888  	result.IsFiring = o.IsFiring
   889  	result.StartTime = proto.Clone(o.StartTime).(*timestamppb.Timestamp)
   890  	result.StopTime = proto.Clone(o.StopTime).(*timestamppb.Timestamp)
   891  	result.Identification = o.Identification.Clone()
   892  	result.ViolationInfo = o.ViolationInfo.Clone()
   893  	result.EscalationLevel = o.EscalationLevel
   894  	result.AiHandling = o.AiHandling.Clone()
   895  	result.OperatorHandling = o.OperatorHandling.Clone()
   896  	return result
   897  }
   898  
   899  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert) CloneRaw() gotenobject.GotenObjectExt {
   900  	return o.Clone()
   901  }
   902  
   903  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert) Merge(source *NotificationMsg_AlertsGroup_ConditionAlerts_Alert) {
   904  	o.Type = source.GetType()
   905  	if source.GetFqn() != nil {
   906  		if data, err := source.GetFqn().ProtoString(); err != nil {
   907  			panic(err)
   908  		} else {
   909  			o.Fqn = &alert.Name{}
   910  			if err := o.Fqn.ParseProtoString(data); err != nil {
   911  				panic(err)
   912  			}
   913  		}
   914  	} else {
   915  		o.Fqn = nil
   916  	}
   917  	o.DisplayName = source.GetDisplayName()
   918  	o.IsFiring = source.GetIsFiring()
   919  	if source.GetStartTime() != nil {
   920  		if o.StartTime == nil {
   921  			o.StartTime = new(timestamppb.Timestamp)
   922  		}
   923  		proto.Merge(o.StartTime, source.GetStartTime())
   924  	}
   925  	if source.GetStopTime() != nil {
   926  		if o.StopTime == nil {
   927  			o.StopTime = new(timestamppb.Timestamp)
   928  		}
   929  		proto.Merge(o.StopTime, source.GetStopTime())
   930  	}
   931  	if source.GetIdentification() != nil {
   932  		if o.Identification == nil {
   933  			o.Identification = new(NotificationMsg_AlertsGroup_ConditionAlerts_Alert_Identification)
   934  		}
   935  		o.Identification.Merge(source.GetIdentification())
   936  	}
   937  	if source.GetViolationInfo() != nil {
   938  		if o.ViolationInfo == nil {
   939  			o.ViolationInfo = new(NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo)
   940  		}
   941  		o.ViolationInfo.Merge(source.GetViolationInfo())
   942  	}
   943  	o.EscalationLevel = source.GetEscalationLevel()
   944  	if source.GetAiHandling() != nil {
   945  		if o.AiHandling == nil {
   946  			o.AiHandling = new(NotificationMsg_AlertsGroup_ConditionAlerts_Alert_AiHandling)
   947  		}
   948  		o.AiHandling.Merge(source.GetAiHandling())
   949  	}
   950  	if source.GetOperatorHandling() != nil {
   951  		if o.OperatorHandling == nil {
   952  			o.OperatorHandling = new(NotificationMsg_AlertsGroup_ConditionAlerts_Alert_OperatorHandling)
   953  		}
   954  		o.OperatorHandling.Merge(source.GetOperatorHandling())
   955  	}
   956  }
   957  
   958  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert) MergeRaw(source gotenobject.GotenObjectExt) {
   959  	o.Merge(source.(*NotificationMsg_AlertsGroup_ConditionAlerts_Alert))
   960  }
   961  
   962  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_Query) GotenObjectExt() {}
   963  
   964  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_Query) MakeFullFieldMask() *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_Query_FieldMask {
   965  	return FullNotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_Query_FieldMask()
   966  }
   967  
   968  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_Query) MakeRawFullFieldMask() gotenobject.FieldMask {
   969  	return FullNotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_Query_FieldMask()
   970  }
   971  
   972  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_Query) MakeDiffFieldMask(other *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_Query) *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_Query_FieldMask {
   973  	if o == nil && other == nil {
   974  		return &NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_Query_FieldMask{}
   975  	}
   976  	if o == nil || other == nil {
   977  		return FullNotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_Query_FieldMask()
   978  	}
   979  
   980  	res := &NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_Query_FieldMask{}
   981  	if o.GetDescription() != other.GetDescription() {
   982  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsTsCndTypeQuery_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsTsCndTypeQuery_FieldPathSelectorDescription})
   983  	}
   984  	if o.GetFilter() != other.GetFilter() {
   985  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsTsCndTypeQuery_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsTsCndTypeQuery_FieldPathSelectorFilter})
   986  	}
   987  	{
   988  		subMask := o.GetAggregation().MakeDiffFieldMask(other.GetAggregation())
   989  		if subMask.IsFull() {
   990  			res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsTsCndTypeQuery_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsTsCndTypeQuery_FieldPathSelectorAggregation})
   991  		} else {
   992  			for _, subpath := range subMask.Paths {
   993  				res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsTsCndTypeQuery_FieldSubPath{selector: NotificationMsgAlertsGroupConditionAlertsTsCndTypeQuery_FieldPathSelectorAggregation, subPath: subpath})
   994  			}
   995  		}
   996  	}
   997  	return res
   998  }
   999  
  1000  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_Query) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  1001  	return o.MakeDiffFieldMask(other.(*NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_Query))
  1002  }
  1003  
  1004  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_Query) Clone() *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_Query {
  1005  	if o == nil {
  1006  		return nil
  1007  	}
  1008  	result := &NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_Query{}
  1009  	result.Description = o.Description
  1010  	result.Filter = o.Filter
  1011  	result.Aggregation = o.Aggregation.Clone()
  1012  	return result
  1013  }
  1014  
  1015  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_Query) CloneRaw() gotenobject.GotenObjectExt {
  1016  	return o.Clone()
  1017  }
  1018  
  1019  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_Query) Merge(source *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_Query) {
  1020  	o.Description = source.GetDescription()
  1021  	o.Filter = source.GetFilter()
  1022  	if source.GetAggregation() != nil {
  1023  		if o.Aggregation == nil {
  1024  			o.Aggregation = new(monitoring_common.Aggregation)
  1025  		}
  1026  		o.Aggregation.Merge(source.GetAggregation())
  1027  	}
  1028  }
  1029  
  1030  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_Query) MergeRaw(source gotenobject.GotenObjectExt) {
  1031  	o.Merge(source.(*NotificationMsg_AlertsGroup_ConditionAlerts_TsCndType_Query))
  1032  }
  1033  
  1034  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_Query) GotenObjectExt() {}
  1035  
  1036  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_Query) MakeFullFieldMask() *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_Query_FieldMask {
  1037  	return FullNotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_Query_FieldMask()
  1038  }
  1039  
  1040  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_Query) MakeRawFullFieldMask() gotenobject.FieldMask {
  1041  	return FullNotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_Query_FieldMask()
  1042  }
  1043  
  1044  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_Query) MakeDiffFieldMask(other *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_Query) *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_Query_FieldMask {
  1045  	if o == nil && other == nil {
  1046  		return &NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_Query_FieldMask{}
  1047  	}
  1048  	if o == nil || other == nil {
  1049  		return FullNotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_Query_FieldMask()
  1050  	}
  1051  
  1052  	res := &NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_Query_FieldMask{}
  1053  	if o.GetDescription() != other.GetDescription() {
  1054  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsLogCndTypeQuery_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsLogCndTypeQuery_FieldPathSelectorDescription})
  1055  	}
  1056  	if o.GetFilter() != other.GetFilter() {
  1057  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsLogCndTypeQuery_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsLogCndTypeQuery_FieldPathSelectorFilter})
  1058  	}
  1059  	return res
  1060  }
  1061  
  1062  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_Query) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  1063  	return o.MakeDiffFieldMask(other.(*NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_Query))
  1064  }
  1065  
  1066  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_Query) Clone() *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_Query {
  1067  	if o == nil {
  1068  		return nil
  1069  	}
  1070  	result := &NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_Query{}
  1071  	result.Description = o.Description
  1072  	result.Filter = o.Filter
  1073  	return result
  1074  }
  1075  
  1076  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_Query) CloneRaw() gotenobject.GotenObjectExt {
  1077  	return o.Clone()
  1078  }
  1079  
  1080  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_Query) Merge(source *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_Query) {
  1081  	o.Description = source.GetDescription()
  1082  	o.Filter = source.GetFilter()
  1083  }
  1084  
  1085  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_Query) MergeRaw(source gotenobject.GotenObjectExt) {
  1086  	o.Merge(source.(*NotificationMsg_AlertsGroup_ConditionAlerts_LogCndType_Query))
  1087  }
  1088  
  1089  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_Identification) GotenObjectExt() {}
  1090  
  1091  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_Identification) MakeFullFieldMask() *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_Identification_FieldMask {
  1092  	return FullNotificationMsg_AlertsGroup_ConditionAlerts_Alert_Identification_FieldMask()
  1093  }
  1094  
  1095  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_Identification) MakeRawFullFieldMask() gotenobject.FieldMask {
  1096  	return FullNotificationMsg_AlertsGroup_ConditionAlerts_Alert_Identification_FieldMask()
  1097  }
  1098  
  1099  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_Identification) MakeDiffFieldMask(other *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_Identification) *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_Identification_FieldMask {
  1100  	if o == nil && other == nil {
  1101  		return &NotificationMsg_AlertsGroup_ConditionAlerts_Alert_Identification_FieldMask{}
  1102  	}
  1103  	if o == nil || other == nil {
  1104  		return FullNotificationMsg_AlertsGroup_ConditionAlerts_Alert_Identification_FieldMask()
  1105  	}
  1106  
  1107  	res := &NotificationMsg_AlertsGroup_ConditionAlerts_Alert_Identification_FieldMask{}
  1108  
  1109  	if len(o.GetLogLabels()) == len(other.GetLogLabels()) {
  1110  		for i, lValue := range o.GetLogLabels() {
  1111  			rValue := other.GetLogLabels()[i]
  1112  			if lValue != rValue {
  1113  				res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlertIdentification_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlertIdentification_FieldPathSelectorLogLabels})
  1114  				break
  1115  			}
  1116  		}
  1117  	} else {
  1118  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlertIdentification_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlertIdentification_FieldPathSelectorLogLabels})
  1119  	}
  1120  
  1121  	if len(o.GetMetricLabels()) == len(other.GetMetricLabels()) {
  1122  		for i, lValue := range o.GetMetricLabels() {
  1123  			rValue := other.GetMetricLabels()[i]
  1124  			if lValue != rValue {
  1125  				res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlertIdentification_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlertIdentification_FieldPathSelectorMetricLabels})
  1126  				break
  1127  			}
  1128  		}
  1129  	} else {
  1130  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlertIdentification_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlertIdentification_FieldPathSelectorMetricLabels})
  1131  	}
  1132  
  1133  	if len(o.GetResourceLabels()) == len(other.GetResourceLabels()) {
  1134  		for i, lValue := range o.GetResourceLabels() {
  1135  			rValue := other.GetResourceLabels()[i]
  1136  			if lValue != rValue {
  1137  				res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlertIdentification_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlertIdentification_FieldPathSelectorResourceLabels})
  1138  				break
  1139  			}
  1140  		}
  1141  	} else {
  1142  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlertIdentification_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlertIdentification_FieldPathSelectorResourceLabels})
  1143  	}
  1144  	return res
  1145  }
  1146  
  1147  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_Identification) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  1148  	return o.MakeDiffFieldMask(other.(*NotificationMsg_AlertsGroup_ConditionAlerts_Alert_Identification))
  1149  }
  1150  
  1151  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_Identification) Clone() *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_Identification {
  1152  	if o == nil {
  1153  		return nil
  1154  	}
  1155  	result := &NotificationMsg_AlertsGroup_ConditionAlerts_Alert_Identification{}
  1156  	result.LogLabels = map[string]string{}
  1157  	for key, sourceValue := range o.LogLabels {
  1158  		result.LogLabels[key] = sourceValue
  1159  	}
  1160  	result.MetricLabels = map[string]string{}
  1161  	for key, sourceValue := range o.MetricLabels {
  1162  		result.MetricLabels[key] = sourceValue
  1163  	}
  1164  	result.ResourceLabels = map[string]string{}
  1165  	for key, sourceValue := range o.ResourceLabels {
  1166  		result.ResourceLabels[key] = sourceValue
  1167  	}
  1168  	return result
  1169  }
  1170  
  1171  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_Identification) CloneRaw() gotenobject.GotenObjectExt {
  1172  	return o.Clone()
  1173  }
  1174  
  1175  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_Identification) Merge(source *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_Identification) {
  1176  	if source.GetLogLabels() != nil {
  1177  		if o.LogLabels == nil {
  1178  			o.LogLabels = make(map[string]string, len(source.GetLogLabels()))
  1179  		}
  1180  		for key, sourceValue := range source.GetLogLabels() {
  1181  			o.LogLabels[key] = sourceValue
  1182  		}
  1183  	}
  1184  	if source.GetMetricLabels() != nil {
  1185  		if o.MetricLabels == nil {
  1186  			o.MetricLabels = make(map[string]string, len(source.GetMetricLabels()))
  1187  		}
  1188  		for key, sourceValue := range source.GetMetricLabels() {
  1189  			o.MetricLabels[key] = sourceValue
  1190  		}
  1191  	}
  1192  	if source.GetResourceLabels() != nil {
  1193  		if o.ResourceLabels == nil {
  1194  			o.ResourceLabels = make(map[string]string, len(source.GetResourceLabels()))
  1195  		}
  1196  		for key, sourceValue := range source.GetResourceLabels() {
  1197  			o.ResourceLabels[key] = sourceValue
  1198  		}
  1199  	}
  1200  }
  1201  
  1202  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_Identification) MergeRaw(source gotenobject.GotenObjectExt) {
  1203  	o.Merge(source.(*NotificationMsg_AlertsGroup_ConditionAlerts_Alert_Identification))
  1204  }
  1205  
  1206  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo) GotenObjectExt() {}
  1207  
  1208  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo) MakeFullFieldMask() *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_FieldMask {
  1209  	return FullNotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_FieldMask()
  1210  }
  1211  
  1212  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo) MakeRawFullFieldMask() gotenobject.FieldMask {
  1213  	return FullNotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_FieldMask()
  1214  }
  1215  
  1216  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo) MakeDiffFieldMask(other *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo) *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_FieldMask {
  1217  	if o == nil && other == nil {
  1218  		return &NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_FieldMask{}
  1219  	}
  1220  	if o == nil || other == nil {
  1221  		return FullNotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_FieldMask()
  1222  	}
  1223  
  1224  	res := &NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_FieldMask{}
  1225  	if o.GetLogValue() != other.GetLogValue() {
  1226  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlertViolationInfo_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlertViolationInfo_FieldPathSelectorLogValue})
  1227  	}
  1228  
  1229  	if len(o.GetTimeSeries()) == len(other.GetTimeSeries()) {
  1230  		for i, lValue := range o.GetTimeSeries() {
  1231  			rValue := other.GetTimeSeries()[i]
  1232  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
  1233  				res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlertViolationInfo_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlertViolationInfo_FieldPathSelectorTimeSeries})
  1234  				break
  1235  			}
  1236  		}
  1237  	} else {
  1238  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlertViolationInfo_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlertViolationInfo_FieldPathSelectorTimeSeries})
  1239  	}
  1240  	return res
  1241  }
  1242  
  1243  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  1244  	return o.MakeDiffFieldMask(other.(*NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo))
  1245  }
  1246  
  1247  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo) Clone() *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo {
  1248  	if o == nil {
  1249  		return nil
  1250  	}
  1251  	result := &NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo{}
  1252  	result.LogValue = o.LogValue
  1253  	result.TimeSeries = make([]*NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_TimeSeries, len(o.TimeSeries))
  1254  	for i, sourceValue := range o.TimeSeries {
  1255  		result.TimeSeries[i] = sourceValue.Clone()
  1256  	}
  1257  	return result
  1258  }
  1259  
  1260  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo) CloneRaw() gotenobject.GotenObjectExt {
  1261  	return o.Clone()
  1262  }
  1263  
  1264  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo) Merge(source *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo) {
  1265  	o.LogValue = source.GetLogValue()
  1266  	for _, sourceValue := range source.GetTimeSeries() {
  1267  		exists := false
  1268  		for _, currentValue := range o.TimeSeries {
  1269  			if proto.Equal(sourceValue, currentValue) {
  1270  				exists = true
  1271  				break
  1272  			}
  1273  		}
  1274  		if !exists {
  1275  			var newDstElement *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_TimeSeries
  1276  			if sourceValue != nil {
  1277  				newDstElement = new(NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_TimeSeries)
  1278  				newDstElement.Merge(sourceValue)
  1279  			}
  1280  			o.TimeSeries = append(o.TimeSeries, newDstElement)
  1281  		}
  1282  	}
  1283  
  1284  }
  1285  
  1286  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo) MergeRaw(source gotenobject.GotenObjectExt) {
  1287  	o.Merge(source.(*NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo))
  1288  }
  1289  
  1290  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_AiHandling) GotenObjectExt() {}
  1291  
  1292  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_AiHandling) MakeFullFieldMask() *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_AiHandling_FieldMask {
  1293  	return FullNotificationMsg_AlertsGroup_ConditionAlerts_Alert_AiHandling_FieldMask()
  1294  }
  1295  
  1296  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_AiHandling) MakeRawFullFieldMask() gotenobject.FieldMask {
  1297  	return FullNotificationMsg_AlertsGroup_ConditionAlerts_Alert_AiHandling_FieldMask()
  1298  }
  1299  
  1300  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_AiHandling) MakeDiffFieldMask(other *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_AiHandling) *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_AiHandling_FieldMask {
  1301  	if o == nil && other == nil {
  1302  		return &NotificationMsg_AlertsGroup_ConditionAlerts_Alert_AiHandling_FieldMask{}
  1303  	}
  1304  	if o == nil || other == nil {
  1305  		return FullNotificationMsg_AlertsGroup_ConditionAlerts_Alert_AiHandling_FieldMask()
  1306  	}
  1307  
  1308  	res := &NotificationMsg_AlertsGroup_ConditionAlerts_Alert_AiHandling_FieldMask{}
  1309  	if o.GetCurrentState() != other.GetCurrentState() {
  1310  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlertAiHandling_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlertAiHandling_FieldPathSelectorCurrentState})
  1311  	}
  1312  	if o.GetTroubleshootingNotes() != other.GetTroubleshootingNotes() {
  1313  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlertAiHandling_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlertAiHandling_FieldPathSelectorTroubleshootingNotes})
  1314  	}
  1315  	{
  1316  		subMask := o.GetAiRemediation().MakeDiffFieldMask(other.GetAiRemediation())
  1317  		if subMask.IsFull() {
  1318  			res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlertAiHandling_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlertAiHandling_FieldPathSelectorAiRemediation})
  1319  		} else {
  1320  			for _, subpath := range subMask.Paths {
  1321  				res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlertAiHandling_FieldSubPath{selector: NotificationMsgAlertsGroupConditionAlertsAlertAiHandling_FieldPathSelectorAiRemediation, subPath: subpath})
  1322  			}
  1323  		}
  1324  	}
  1325  	if o.GetRemediationArg() != other.GetRemediationArg() {
  1326  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlertAiHandling_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlertAiHandling_FieldPathSelectorRemediationArg})
  1327  	}
  1328  	return res
  1329  }
  1330  
  1331  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_AiHandling) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  1332  	return o.MakeDiffFieldMask(other.(*NotificationMsg_AlertsGroup_ConditionAlerts_Alert_AiHandling))
  1333  }
  1334  
  1335  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_AiHandling) Clone() *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_AiHandling {
  1336  	if o == nil {
  1337  		return nil
  1338  	}
  1339  	result := &NotificationMsg_AlertsGroup_ConditionAlerts_Alert_AiHandling{}
  1340  	result.CurrentState = o.CurrentState
  1341  	result.TroubleshootingNotes = o.TroubleshootingNotes
  1342  	result.AiRemediation = o.AiRemediation.Clone()
  1343  	result.RemediationArg = o.RemediationArg
  1344  	return result
  1345  }
  1346  
  1347  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_AiHandling) CloneRaw() gotenobject.GotenObjectExt {
  1348  	return o.Clone()
  1349  }
  1350  
  1351  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_AiHandling) Merge(source *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_AiHandling) {
  1352  	o.CurrentState = source.GetCurrentState()
  1353  	o.TroubleshootingNotes = source.GetTroubleshootingNotes()
  1354  	if source.GetAiRemediation() != nil {
  1355  		if o.AiRemediation == nil {
  1356  			o.AiRemediation = new(rcommon.PolicySpec_AIAgentHandling_Remediation)
  1357  		}
  1358  		o.AiRemediation.Merge(source.GetAiRemediation())
  1359  	}
  1360  	o.RemediationArg = source.GetRemediationArg()
  1361  }
  1362  
  1363  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_AiHandling) MergeRaw(source gotenobject.GotenObjectExt) {
  1364  	o.Merge(source.(*NotificationMsg_AlertsGroup_ConditionAlerts_Alert_AiHandling))
  1365  }
  1366  
  1367  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_OperatorHandling) GotenObjectExt() {}
  1368  
  1369  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_OperatorHandling) MakeFullFieldMask() *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_OperatorHandling_FieldMask {
  1370  	return FullNotificationMsg_AlertsGroup_ConditionAlerts_Alert_OperatorHandling_FieldMask()
  1371  }
  1372  
  1373  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_OperatorHandling) MakeRawFullFieldMask() gotenobject.FieldMask {
  1374  	return FullNotificationMsg_AlertsGroup_ConditionAlerts_Alert_OperatorHandling_FieldMask()
  1375  }
  1376  
  1377  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_OperatorHandling) MakeDiffFieldMask(other *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_OperatorHandling) *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_OperatorHandling_FieldMask {
  1378  	if o == nil && other == nil {
  1379  		return &NotificationMsg_AlertsGroup_ConditionAlerts_Alert_OperatorHandling_FieldMask{}
  1380  	}
  1381  	if o == nil || other == nil {
  1382  		return FullNotificationMsg_AlertsGroup_ConditionAlerts_Alert_OperatorHandling_FieldMask()
  1383  	}
  1384  
  1385  	res := &NotificationMsg_AlertsGroup_ConditionAlerts_Alert_OperatorHandling_FieldMask{}
  1386  	if o.GetCurrentState() != other.GetCurrentState() {
  1387  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlertOperatorHandling_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlertOperatorHandling_FieldPathSelectorCurrentState})
  1388  	}
  1389  	if o.GetNotes() != other.GetNotes() {
  1390  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlertOperatorHandling_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlertOperatorHandling_FieldPathSelectorNotes})
  1391  	}
  1392  	return res
  1393  }
  1394  
  1395  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_OperatorHandling) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  1396  	return o.MakeDiffFieldMask(other.(*NotificationMsg_AlertsGroup_ConditionAlerts_Alert_OperatorHandling))
  1397  }
  1398  
  1399  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_OperatorHandling) Clone() *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_OperatorHandling {
  1400  	if o == nil {
  1401  		return nil
  1402  	}
  1403  	result := &NotificationMsg_AlertsGroup_ConditionAlerts_Alert_OperatorHandling{}
  1404  	result.CurrentState = o.CurrentState
  1405  	result.Notes = o.Notes
  1406  	return result
  1407  }
  1408  
  1409  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_OperatorHandling) CloneRaw() gotenobject.GotenObjectExt {
  1410  	return o.Clone()
  1411  }
  1412  
  1413  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_OperatorHandling) Merge(source *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_OperatorHandling) {
  1414  	o.CurrentState = source.GetCurrentState()
  1415  	o.Notes = source.GetNotes()
  1416  }
  1417  
  1418  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_OperatorHandling) MergeRaw(source gotenobject.GotenObjectExt) {
  1419  	o.Merge(source.(*NotificationMsg_AlertsGroup_ConditionAlerts_Alert_OperatorHandling))
  1420  }
  1421  
  1422  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_TimeSeries) GotenObjectExt() {
  1423  }
  1424  
  1425  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_TimeSeries) MakeFullFieldMask() *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_TimeSeries_FieldMask {
  1426  	return FullNotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_TimeSeries_FieldMask()
  1427  }
  1428  
  1429  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_TimeSeries) MakeRawFullFieldMask() gotenobject.FieldMask {
  1430  	return FullNotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_TimeSeries_FieldMask()
  1431  }
  1432  
  1433  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_TimeSeries) MakeDiffFieldMask(other *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_TimeSeries) *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_TimeSeries_FieldMask {
  1434  	if o == nil && other == nil {
  1435  		return &NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_TimeSeries_FieldMask{}
  1436  	}
  1437  	if o == nil || other == nil {
  1438  		return FullNotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_TimeSeries_FieldMask()
  1439  	}
  1440  
  1441  	res := &NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_TimeSeries_FieldMask{}
  1442  	if o.GetQuery() != other.GetQuery() {
  1443  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlertViolationInfoTimeSeries_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlertViolationInfoTimeSeries_FieldPathSelectorQuery})
  1444  	}
  1445  
  1446  	if len(o.GetValues()) == len(other.GetValues()) {
  1447  		for i, lValue := range o.GetValues() {
  1448  			rValue := other.GetValues()[i]
  1449  			if lValue != rValue {
  1450  				res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlertViolationInfoTimeSeries_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlertViolationInfoTimeSeries_FieldPathSelectorValues})
  1451  				break
  1452  			}
  1453  		}
  1454  	} else {
  1455  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlertViolationInfoTimeSeries_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlertViolationInfoTimeSeries_FieldPathSelectorValues})
  1456  	}
  1457  	{
  1458  		subMask := o.GetUpperThreshold().MakeDiffFieldMask(other.GetUpperThreshold())
  1459  		if subMask.IsFull() {
  1460  			res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlertViolationInfoTimeSeries_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlertViolationInfoTimeSeries_FieldPathSelectorUpperThreshold})
  1461  		} else {
  1462  			for _, subpath := range subMask.Paths {
  1463  				res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlertViolationInfoTimeSeries_FieldSubPath{selector: NotificationMsgAlertsGroupConditionAlertsAlertViolationInfoTimeSeries_FieldPathSelectorUpperThreshold, subPath: subpath})
  1464  			}
  1465  		}
  1466  	}
  1467  	{
  1468  		subMask := o.GetLowerThreshold().MakeDiffFieldMask(other.GetLowerThreshold())
  1469  		if subMask.IsFull() {
  1470  			res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlertViolationInfoTimeSeries_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlertViolationInfoTimeSeries_FieldPathSelectorLowerThreshold})
  1471  		} else {
  1472  			for _, subpath := range subMask.Paths {
  1473  				res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlertViolationInfoTimeSeries_FieldSubPath{selector: NotificationMsgAlertsGroupConditionAlertsAlertViolationInfoTimeSeries_FieldPathSelectorLowerThreshold, subPath: subpath})
  1474  			}
  1475  		}
  1476  	}
  1477  	if !proto.Equal(o.GetRaisedAfter(), other.GetRaisedAfter()) {
  1478  		res.Paths = append(res.Paths, &NotificationMsgAlertsGroupConditionAlertsAlertViolationInfoTimeSeries_FieldTerminalPath{selector: NotificationMsgAlertsGroupConditionAlertsAlertViolationInfoTimeSeries_FieldPathSelectorRaisedAfter})
  1479  	}
  1480  	return res
  1481  }
  1482  
  1483  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_TimeSeries) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
  1484  	return o.MakeDiffFieldMask(other.(*NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_TimeSeries))
  1485  }
  1486  
  1487  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_TimeSeries) Clone() *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_TimeSeries {
  1488  	if o == nil {
  1489  		return nil
  1490  	}
  1491  	result := &NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_TimeSeries{}
  1492  	result.Query = o.Query
  1493  	result.Values = make([]float64, len(o.Values))
  1494  	for i, sourceValue := range o.Values {
  1495  		result.Values[i] = sourceValue
  1496  	}
  1497  	result.UpperThreshold = o.UpperThreshold.Clone()
  1498  	result.LowerThreshold = o.LowerThreshold.Clone()
  1499  	result.RaisedAfter = proto.Clone(o.RaisedAfter).(*durationpb.Duration)
  1500  	return result
  1501  }
  1502  
  1503  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_TimeSeries) CloneRaw() gotenobject.GotenObjectExt {
  1504  	return o.Clone()
  1505  }
  1506  
  1507  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_TimeSeries) Merge(source *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_TimeSeries) {
  1508  	o.Query = source.GetQuery()
  1509  	for _, sourceValue := range source.GetValues() {
  1510  		exists := false
  1511  		for _, currentValue := range o.Values {
  1512  			if currentValue == sourceValue {
  1513  				exists = true
  1514  				break
  1515  			}
  1516  		}
  1517  		if !exists {
  1518  			var newDstElement float64
  1519  			newDstElement = sourceValue
  1520  			o.Values = append(o.Values, newDstElement)
  1521  		}
  1522  	}
  1523  
  1524  	if source.GetUpperThreshold() != nil {
  1525  		if o.UpperThreshold == nil {
  1526  			o.UpperThreshold = new(rcommon.AlertingThreshold)
  1527  		}
  1528  		o.UpperThreshold.Merge(source.GetUpperThreshold())
  1529  	}
  1530  	if source.GetLowerThreshold() != nil {
  1531  		if o.LowerThreshold == nil {
  1532  			o.LowerThreshold = new(rcommon.AlertingThreshold)
  1533  		}
  1534  		o.LowerThreshold.Merge(source.GetLowerThreshold())
  1535  	}
  1536  	if source.GetRaisedAfter() != nil {
  1537  		if o.RaisedAfter == nil {
  1538  			o.RaisedAfter = new(durationpb.Duration)
  1539  		}
  1540  		proto.Merge(o.RaisedAfter, source.GetRaisedAfter())
  1541  	}
  1542  }
  1543  
  1544  func (o *NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_TimeSeries) MergeRaw(source gotenobject.GotenObjectExt) {
  1545  	o.Merge(source.(*NotificationMsg_AlertsGroup_ConditionAlerts_Alert_ViolationInfo_TimeSeries))
  1546  }