diff --git a/gen/templates/profile_parcels/model.go b/gen/templates/profile_parcels/model.go index 565fbc1c5..221223d68 100644 --- a/gen/templates/profile_parcels/model.go +++ b/gen/templates/profile_parcels/model.go @@ -528,9 +528,48 @@ func (data *{{camelCase .Name}}) updateFromBody(ctx context.Context, res gjson.R {{- else if isNestedListSet .}} {{- $list := (toGoName .TfName)}} for i := range data.{{toGoName .TfName}} { - keys := [...]string{ {{$noId := not (hasId .Attributes)}}{{range .Attributes}}{{if or .Id $noId}}{{if or (eq .Type "Int64") (eq .Type "Bool") (eq .Type "String") (eq .Type "StringInt64")}}"{{range .DataPath}}{{.}}.{{end}}{{.ModelName}}", {{end}}{{end}}{{end}} } - keyValues := [...]string{ {{$noId := not (hasId .Attributes)}}{{range .Attributes}}{{if or .Id $noId}}{{if eq .Type "Int64"}}strconv.FormatInt(data.{{$list}}[i].{{toGoName .TfName}}.ValueInt64(), 10), {{else if eq .Type "Bool"}}strconv.FormatBool(data.{{$list}}[i].{{toGoName .TfName}}.ValueBool()), {{else if or (eq .Type "String") (eq .Type "StringInt64")}}data.{{$list}}[i].{{toGoName .TfName}}.ValueString(), {{end}}{{end}}{{end}} } - keyValuesVariables := [...]string{ {{$noId := not (hasId .Attributes)}}{{range .Attributes}}{{if or .Id $noId}}{{if or (eq .Type "Int64") (eq .Type "Bool") (eq .Type "String") (eq .Type "StringInt64")}}{{if .Variable}}data.{{$list}}[i].{{toGoName .TfName}}Variable.ValueString(), {{else}}"", {{end}}{{end}}{{end}}{{end}} } + keys := [...]string{ + {{- $noId := not (hasId .Attributes)}} + {{- range .Attributes}} + {{- if or .Id $noId}} + {{- if or (eq .Type "Int64") (eq .Type "Bool") (eq .Type "String") (eq .Type "StringInt64")}}"{{range .DataPath}}{{.}}.{{end}}{{.ModelName}}", + {{- else if or (eq .Type "Set") (eq .Type "List")}} + {{- if or (eq .ElementType "String") (eq .ElementType "Int64")}}"{{range .DataPath}}{{.}}.{{end}}{{.ModelName}}",{{- end}} + {{- end}} + {{- end}} + {{- end}} + } + keyValues := [...]string{ + {{- $noId := not (hasId .Attributes)}} + {{- range .Attributes}} + {{- if or .Id $noId}} + {{- if eq .Type "Int64"}}strconv.FormatInt(data.{{$list}}[i].{{toGoName .TfName}}.ValueInt64(), 10), + {{- else if eq .Type "Bool"}}strconv.FormatBool(data.{{$list}}[i].{{toGoName .TfName}}.ValueBool()), + {{- else if or (eq .Type "String") (eq .Type "StringInt64")}}data.{{$list}}[i].{{toGoName .TfName}}.ValueString(), + {{- else if (eq .Type "Set")}} + {{- if or (eq .ElementType "String") (eq .ElementType "Int64")}}helpers.GetStringFromSet(data.{{$list}}[i].{{toGoName .TfName}}).ValueString(),{{- end}} + {{- else if (eq .Type "List")}} + {{- if or (eq .ElementType "String") (eq .ElementType "Int64")}}helpers.GetStringFromList(data.{{$list}}[i].{{toGoName .TfName}}).ValueString(),{{- end}} + {{- end}} + {{- end}} + {{- end}} + } + keyValuesVariables := [...]string{ + {{- $noId := not (hasId .Attributes)}} + {{- range .Attributes}} + {{- if or .Id $noId}} + {{- if or (eq .Type "Int64") (eq .Type "Bool") (eq .Type "String") (eq .Type "StringInt64") (eq .Type "Set")}} + {{- if .Variable}}data.{{$list}}[i].{{toGoName .TfName}}Variable.ValueString(), + {{- else}}"",{{- end}} + {{- else if or (eq .Type "Set") (eq .Type "List")}} + {{- if or (eq .ElementType "String") (eq .ElementType "Int64")}} + {{- if .Variable}}data.{{$list}}[i].{{toGoName .TfName}}Variable.ValueString(), + {{- else}}"",{{- end}} + {{- end}} + {{- end}} + {{- end}} + {{- end}} + } var r gjson.Result res.Get(path + "{{range .DataPath}}{{.}}.{{end}}{{.ModelName}}").ForEach( @@ -580,9 +619,48 @@ func (data *{{camelCase .Name}}) updateFromBody(ctx context.Context, res gjson.R {{- else if isNestedListSet .}} {{- $clist := (toGoName .TfName)}} for ci := range data.{{$list}}[i].{{toGoName .TfName}} { - keys := [...]string{ {{$noId := not (hasId .Attributes)}}{{range .Attributes}}{{if or .Id $noId}}{{if or (eq .Type "Int64") (eq .Type "Bool") (eq .Type "String") (eq .Type "StringInt64")}}"{{range .DataPath}}{{.}}.{{end}}{{.ModelName}}", {{end}}{{end}}{{end}} } - keyValues := [...]string{ {{$noId := not (hasId .Attributes)}}{{range .Attributes}}{{if or .Id $noId}}{{if eq .Type "Int64"}}strconv.FormatInt(data.{{$list}}[i].{{$clist}}[ci].{{toGoName .TfName}}.ValueInt64(), 10), {{else if eq .Type "Bool"}}strconv.FormatBool(data.{{$list}}[i].{{$clist}}[ci].{{toGoName .TfName}}.ValueBool()), {{else if or (eq .Type "String") (eq .Type "StringInt64")}}data.{{$list}}[i].{{$clist}}[ci].{{toGoName .TfName}}.ValueString(), {{end}}{{end}}{{end}} } - keyValuesVariables := [...]string{ {{$noId := not (hasId .Attributes)}}{{range .Attributes}}{{if or .Id $noId}}{{if or (eq .Type "Int64") (eq .Type "Bool") (eq .Type "String") (eq .Type "StringInt64")}}{{if .Variable}}data.{{$list}}[i].{{$clist}}[ci].{{toGoName .TfName}}Variable.ValueString(), {{else}}"", {{end}}{{end}}{{end}}{{end}} } + keys := [...]string{ + {{- $noId := not (hasId .Attributes)}} + {{- range .Attributes}} + {{- if or .Id $noId}} + {{- if or (eq .Type "Int64") (eq .Type "Bool") (eq .Type "String") (eq .Type "StringInt64")}}"{{range .DataPath}}{{.}}.{{end}}{{.ModelName}}", + {{- else if or (eq .Type "Set") (eq .Type "List")}} + {{- if or (eq .ElementType "String") (eq .ElementType "Int64")}}"{{range .DataPath}}{{.}}.{{end}}{{.ModelName}}",{{- end}} + {{- end}} + {{- end}} + {{- end}} + } + keyValues := [...]string{ + {{- $noId := not (hasId .Attributes)}} + {{- range .Attributes}} + {{- if or .Id $noId}} + {{- if eq .Type "Int64"}}strconv.FormatInt(data.{{$list}}[i].{{$clist}}[ci].{{toGoName .TfName}}.ValueInt64(), 10), + {{- else if eq .Type "Bool"}}strconv.FormatBool(data.{{$list}}[i].{{$clist}}[ci].{{toGoName .TfName}}.ValueBool()), + {{- else if or (eq .Type "String") (eq .Type "StringInt64")}}data.{{$list}}[i].{{$clist}}[ci].{{toGoName .TfName}}.ValueString(), + {{- else if (eq .Type "Set")}} + {{- if or (eq .ElementType "String") (eq .ElementType "Int64")}}helpers.GetStringFromSet(data.{{$list}}[i].{{$clist}}[ci].{{toGoName .TfName}}).ValueString(),{{- end}} + {{- else if (eq .Type "List")}} + {{- if or (eq .ElementType "String") (eq .ElementType "Int64")}}helpers.GetStringFromList(data.{{$list}}[i].{{$clist}}[ci].{{toGoName .TfName}}).ValueString(),{{- end}} + {{- end}} + {{- end}} + {{- end}} + } + keyValuesVariables := [...]string{ + {{- $noId := not (hasId .Attributes)}} + {{- range .Attributes}} + {{- if or .Id $noId}} + {{- if or (eq .Type "Int64") (eq .Type "Bool") (eq .Type "String") (eq .Type "StringInt64")}} + {{- if .Variable}}data.{{$list}}[i].{{$clist}}[ci].{{toGoName .TfName}}Variable.ValueString(), + {{- else}}"",{{- end}} + {{- else if or (eq .Type "Set") (eq .Type "List")}} + {{- if or (eq .ElementType "String") (eq .ElementType "Int64")}} + {{- if .Variable}}data.{{$list}}[i].{{$clist}}[ci].{{toGoName .TfName}}Variable.ValueString(), + {{- else}}"",{{- end}} + {{- end}} + {{- end}} + {{- end}} + {{- end}} + } var cr gjson.Result r.Get("{{range .DataPath}}{{.}}.{{end}}{{.ModelName}}").ForEach( @@ -632,9 +710,48 @@ func (data *{{camelCase .Name}}) updateFromBody(ctx context.Context, res gjson.R {{- else if isNestedListSet .}} {{- $cclist := (toGoName .TfName)}} for cci := range data.{{$list}}[i].{{$clist}}[ci].{{toGoName .TfName}} { - keys := [...]string{ {{$noId := not (hasId .Attributes)}}{{range .Attributes}}{{if or .Id $noId}}{{if or (eq .Type "Int64") (eq .Type "Bool") (eq .Type "String") (eq .Type "StringInt64")}}"{{range .DataPath}}{{.}}.{{end}}{{.ModelName}}", {{end}}{{end}}{{end}} } - keyValues := [...]string{ {{$noId := not (hasId .Attributes)}}{{range .Attributes}}{{if or .Id $noId}}{{if eq .Type "Int64"}}strconv.FormatInt(data.{{$list}}[i].{{$clist}}[ci].{{$cclist}}[cci].{{toGoName .TfName}}.ValueInt64(), 10), {{else if eq .Type "Bool"}}strconv.FormatBool(data.{{$list}}[i].{{$clist}}[ci].{{$cclist}}[cci].{{toGoName .TfName}}.ValueBool()), {{else if or (eq .Type "String") (eq .Type "StringInt64")}}data.{{$list}}[i].{{$clist}}[ci].{{$cclist}}[cci].{{toGoName .TfName}}.ValueString(), {{end}}{{end}}{{end}} } - keyValuesVariables := [...]string{ {{$noId := not (hasId .Attributes)}}{{range .Attributes}}{{if or .Id $noId}}{{if or (eq .Type "Int64") (eq .Type "Bool") (eq .Type "String") (eq .Type "StringInt64")}}{{if .Variable}}data.{{$list}}[i].{{$clist}}[ci].{{$cclist}}[cci].{{toGoName .TfName}}Variable.ValueString(), {{else}}"", {{end}}{{end}}{{end}}{{end}} } + keys := [...]string{ + {{- $noId := not (hasId .Attributes)}} + {{- range .Attributes}} + {{- if or .Id $noId}} + {{- if or (eq .Type "Int64") (eq .Type "Bool") (eq .Type "String") (eq .Type "StringInt64")}}"{{range .DataPath}}{{.}}.{{end}}{{.ModelName}}", + {{- else if or (eq .Type "Set") (eq .Type "List")}} + {{- if or (eq .ElementType "String") (eq .ElementType "Int64")}}"{{range .DataPath}}{{.}}.{{end}}{{.ModelName}}",{{- end}} + {{- end}} + {{- end}} + {{- end}} + } + keyValues := [...]string{ + {{- $noId := not (hasId .Attributes)}} + {{- range .Attributes}} + {{- if or .Id $noId}} + {{- if eq .Type "Int64"}}strconv.FormatInt(data.{{$list}}[i].{{$clist}}[ci].{{$cclist}}[cci].{{toGoName .TfName}}.ValueInt64(), 10), + {{- else if eq .Type "Bool"}}strconv.FormatBool(data.{{$list}}[i].{{$clist}}[ci].{{$cclist}}[cci].{{toGoName .TfName}}.ValueBool()), + {{- else if or (eq .Type "String") (eq .Type "StringInt64")}}data.{{$list}}[i].{{$clist}}[ci].{{$cclist}}[cci].{{toGoName .TfName}}.ValueString(), + {{- else if (eq .Type "Set")}} + {{- if or (eq .ElementType "String") (eq .ElementType "Int64")}}helpers.GetStringFromSet(data.{{$list}}[i].{{$clist}}[ci].{{$cclist}}[cci].{{toGoName .TfName}}).ValueString(),{{- end}} + {{- else if (eq .Type "List")}} + {{- if or (eq .ElementType "String") (eq .ElementType "Int64")}}helpers.GetStringFromList(data.{{$list}}[i].{{$clist}}[ci].{{$cclist}}[cci].{{toGoName .TfName}}).ValueString(),{{- end}} + {{- end}} + {{- end}} + {{- end}} + } + keyValuesVariables := [...]string{ + {{- $noId := not (hasId .Attributes)}} + {{- range .Attributes}} + {{- if or .Id $noId}} + {{- if or (eq .Type "Int64") (eq .Type "Bool") (eq .Type "String") (eq .Type "StringInt64")}} + {{- if .Variable}}data.{{$list}}[i].{{$clist}}[ci].{{$cclist}}[cci].{{toGoName .TfName}}Variable.ValueString(), + {{- else}}"",{{- end}} + {{- else if or (eq .Type "Set") (eq .Type "List")}} + {{- if or (eq .ElementType "String") (eq .ElementType "Int64")}} + {{- if .Variable}}data.{{$list}}[i].{{$clist}}[ci].{{$cclist}}[cci].{{toGoName .TfName}}Variable.ValueString(), + {{- else}}"",{{- end}} + {{- end}} + {{- end}} + {{- end}} + {{- end}} + } var ccr gjson.Result cr.Get("{{range .DataPath}}{{.}}.{{end}}{{.ModelName}}").ForEach( diff --git a/internal/provider/helpers/utils.go b/internal/provider/helpers/utils.go index 115d3fb0c..12a69cc4e 100644 --- a/internal/provider/helpers/utils.go +++ b/internal/provider/helpers/utils.go @@ -26,6 +26,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/attr" "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-plugin-framework/types/basetypes" "github.com/hashicorp/terraform-plugin-log/tflog" "github.com/netascode/go-sdwan" "github.com/tidwall/gjson" @@ -42,6 +43,22 @@ func Contains(s []string, str string) bool { return false } +func GetStringFromList(list basetypes.ListValue) types.String { + v := make([]string, len(list.Elements())) + for r := range list.Elements() { + v[r] = list.Elements()[r].String() + } + return types.StringValue("[" + strings.Join(v, ",") + "]") +} + +func GetStringFromSet(set basetypes.SetValue) types.String { + v := make([]string, len(set.Elements())) + for r := range set.Elements() { + v[r] = set.Elements()[r].String() + } + return types.StringValue("[" + strings.Join(v, ",") + "]") +} + func GetStringList(result []gjson.Result) types.List { v := make([]attr.Value, len(result)) for r := range result { diff --git a/internal/provider/model_sdwan_application_priority_traffic_policy_policy.go b/internal/provider/model_sdwan_application_priority_traffic_policy_policy.go index e9f9d204f..b4aa81d8b 100644 --- a/internal/provider/model_sdwan_application_priority_traffic_policy_policy.go +++ b/internal/provider/model_sdwan_application_priority_traffic_policy_policy.go @@ -1608,9 +1608,9 @@ func (data *ApplicationPriorityTrafficPolicy) updateFromBody(ctx context.Context } } for ci := range data.Sequences[i].MatchEntries { - keys := [...]string{"appList.refId", "saasAppList.refId", "trafficCategory", "dnsAppList.refId", "trafficClass", "dscp", "packetLength", "sourceDataPrefixList.refId", "sourceDataIpv6PrefixList.refId", "sourceIp", "sourceIpv6", "destinationDataPrefixList.refId", "destinationDataIpv6PrefixList.refId", "destinationIp", "destinationIpv6", "tcp", "destinationRegion", "trafficTo", "dns"} - keyValues := [...]string{data.Sequences[i].MatchEntries[ci].ApplicationListId.ValueString(), data.Sequences[i].MatchEntries[ci].SaasApplicationListId.ValueString(), data.Sequences[i].MatchEntries[ci].TrafficCategory.ValueString(), data.Sequences[i].MatchEntries[ci].DnsApplicationListId.ValueString(), data.Sequences[i].MatchEntries[ci].TrafficClass.ValueString(), strconv.FormatInt(data.Sequences[i].MatchEntries[ci].Dscp.ValueInt64(), 10), data.Sequences[i].MatchEntries[ci].PacketLength.ValueString(), data.Sequences[i].MatchEntries[ci].SourceDataIpv4PrefxListId.ValueString(), data.Sequences[i].MatchEntries[ci].SourceDataIpv6PrefxListId.ValueString(), data.Sequences[i].MatchEntries[ci].SourceIpv4Prefix.ValueString(), data.Sequences[i].MatchEntries[ci].SourceIpv6Prefix.ValueString(), data.Sequences[i].MatchEntries[ci].DestinationDataIpv4PrefixListId.ValueString(), data.Sequences[i].MatchEntries[ci].DestinationDataIpv6PrefixListId.ValueString(), data.Sequences[i].MatchEntries[ci].DestinationIpv4Prefix.ValueString(), data.Sequences[i].MatchEntries[ci].DestinationIpv6Prefix.ValueString(), data.Sequences[i].MatchEntries[ci].Tcp.ValueString(), data.Sequences[i].MatchEntries[ci].DestinationRegion.ValueString(), data.Sequences[i].MatchEntries[ci].TrafficTo.ValueString(), data.Sequences[i].MatchEntries[ci].Dns.ValueString()} - keyValuesVariables := [...]string{"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""} + keys := [...]string{"appList.refId", "saasAppList.refId", "serviceArea", "trafficCategory", "dnsAppList.refId", "trafficClass", "dscp", "packetLength", "protocol", "icmpMessage", "icmp6Message", "sourceDataPrefixList.refId", "sourceDataIpv6PrefixList.refId", "sourceIp", "sourceIpv6", "sourcePort", "destinationDataPrefixList.refId", "destinationDataIpv6PrefixList.refId", "destinationIp", "destinationIpv6", "destinationPort", "tcp", "destinationRegion", "trafficTo", "dns"} + keyValues := [...]string{data.Sequences[i].MatchEntries[ci].ApplicationListId.ValueString(), data.Sequences[i].MatchEntries[ci].SaasApplicationListId.ValueString(), helpers.GetStringFromSet(data.Sequences[i].MatchEntries[ci].ServiceArea).ValueString(), data.Sequences[i].MatchEntries[ci].TrafficCategory.ValueString(), data.Sequences[i].MatchEntries[ci].DnsApplicationListId.ValueString(), data.Sequences[i].MatchEntries[ci].TrafficClass.ValueString(), strconv.FormatInt(data.Sequences[i].MatchEntries[ci].Dscp.ValueInt64(), 10), data.Sequences[i].MatchEntries[ci].PacketLength.ValueString(), helpers.GetStringFromSet(data.Sequences[i].MatchEntries[ci].Protocols).ValueString(), helpers.GetStringFromSet(data.Sequences[i].MatchEntries[ci].IcmpMessage).ValueString(), helpers.GetStringFromSet(data.Sequences[i].MatchEntries[ci].Icmp6Message).ValueString(), data.Sequences[i].MatchEntries[ci].SourceDataIpv4PrefxListId.ValueString(), data.Sequences[i].MatchEntries[ci].SourceDataIpv6PrefxListId.ValueString(), data.Sequences[i].MatchEntries[ci].SourceIpv4Prefix.ValueString(), data.Sequences[i].MatchEntries[ci].SourceIpv6Prefix.ValueString(), helpers.GetStringFromSet(data.Sequences[i].MatchEntries[ci].SourcePorts).ValueString(), data.Sequences[i].MatchEntries[ci].DestinationDataIpv4PrefixListId.ValueString(), data.Sequences[i].MatchEntries[ci].DestinationDataIpv6PrefixListId.ValueString(), data.Sequences[i].MatchEntries[ci].DestinationIpv4Prefix.ValueString(), data.Sequences[i].MatchEntries[ci].DestinationIpv6Prefix.ValueString(), helpers.GetStringFromSet(data.Sequences[i].MatchEntries[ci].DestinationPorts).ValueString(), data.Sequences[i].MatchEntries[ci].Tcp.ValueString(), data.Sequences[i].MatchEntries[ci].DestinationRegion.ValueString(), data.Sequences[i].MatchEntries[ci].TrafficTo.ValueString(), data.Sequences[i].MatchEntries[ci].Dns.ValueString()} + keyValuesVariables := [...]string{"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""} var cr gjson.Result r.Get("match.entries").ForEach( @@ -1838,9 +1838,9 @@ func (data *ApplicationPriorityTrafficPolicy) updateFromBody(ctx context.Context } } for ci := range data.Sequences[i].Actions { - keys := [...]string{"redirectDns.field", "redirectDns.value", "lossCorrection.lossCorrectionType", "lossCorrection.lossCorrectFec", "count", "log", "cloudSaas", "cloudProbe", "natPool", "nat.useVpn", "nat.fallback", "nat.bypass", "sig", "fallbackToRouting"} - keyValues := [...]string{data.Sequences[i].Actions[ci].RedirectDnsField.ValueString(), data.Sequences[i].Actions[ci].RedirectDnsValue.ValueString(), data.Sequences[i].Actions[ci].LossCorrectType.ValueString(), strconv.FormatInt(data.Sequences[i].Actions[ci].LossCorrectFecThreshold.ValueInt64(), 10), data.Sequences[i].Actions[ci].Count.ValueString(), strconv.FormatBool(data.Sequences[i].Actions[ci].Log.ValueBool()), strconv.FormatBool(data.Sequences[i].Actions[ci].CloudSaas.ValueBool()), strconv.FormatBool(data.Sequences[i].Actions[ci].CloudProbe.ValueBool()), strconv.FormatInt(data.Sequences[i].Actions[ci].NatPool.ValueInt64(), 10), strconv.FormatBool(data.Sequences[i].Actions[ci].NatVpn.ValueBool()), strconv.FormatBool(data.Sequences[i].Actions[ci].NatFallback.ValueBool()), strconv.FormatBool(data.Sequences[i].Actions[ci].NatBypass.ValueBool()), strconv.FormatBool(data.Sequences[i].Actions[ci].SecureInternetGateway.ValueBool()), strconv.FormatBool(data.Sequences[i].Actions[ci].FallbackToRouting.ValueBool())} - keyValuesVariables := [...]string{"", "", "", "", "", "", "", "", "", "", "", "", "", ""} + keys := [...]string{"backupSlaPreferredColor", "redirectDns.field", "redirectDns.value", "lossCorrection.lossCorrectionType", "lossCorrection.lossCorrectFec", "count", "log", "cloudSaas", "cloudProbe", "natPool", "nat.useVpn", "nat.fallback", "nat.bypass", "nat.diaPool", "nat.diaInterface", "sig", "fallbackToRouting"} + keyValues := [...]string{helpers.GetStringFromSet(data.Sequences[i].Actions[ci].BackupSlaPreferredColor).ValueString(), data.Sequences[i].Actions[ci].RedirectDnsField.ValueString(), data.Sequences[i].Actions[ci].RedirectDnsValue.ValueString(), data.Sequences[i].Actions[ci].LossCorrectType.ValueString(), strconv.FormatInt(data.Sequences[i].Actions[ci].LossCorrectFecThreshold.ValueInt64(), 10), data.Sequences[i].Actions[ci].Count.ValueString(), strconv.FormatBool(data.Sequences[i].Actions[ci].Log.ValueBool()), strconv.FormatBool(data.Sequences[i].Actions[ci].CloudSaas.ValueBool()), strconv.FormatBool(data.Sequences[i].Actions[ci].CloudProbe.ValueBool()), strconv.FormatInt(data.Sequences[i].Actions[ci].NatPool.ValueInt64(), 10), strconv.FormatBool(data.Sequences[i].Actions[ci].NatVpn.ValueBool()), strconv.FormatBool(data.Sequences[i].Actions[ci].NatFallback.ValueBool()), strconv.FormatBool(data.Sequences[i].Actions[ci].NatBypass.ValueBool()), helpers.GetStringFromSet(data.Sequences[i].Actions[ci].NatDiaPool).ValueString(), helpers.GetStringFromSet(data.Sequences[i].Actions[ci].NatDiaInterface).ValueString(), strconv.FormatBool(data.Sequences[i].Actions[ci].SecureInternetGateway.ValueBool()), strconv.FormatBool(data.Sequences[i].Actions[ci].FallbackToRouting.ValueBool())} + keyValuesVariables := [...]string{"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""} var cr gjson.Result r.Get("actions").ForEach( @@ -1867,9 +1867,9 @@ func (data *ApplicationPriorityTrafficPolicy) updateFromBody(ctx context.Context }, ) for cci := range data.Sequences[i].Actions[ci].SlaClasses { - keys := [...]string{"slaName.refId", "preferredColorGroup.refId", "strict", "fallbackToBestPath", "remoteColorRestrict"} - keyValues := [...]string{data.Sequences[i].Actions[ci].SlaClasses[cci].SlaClassListId.ValueString(), data.Sequences[i].Actions[ci].SlaClasses[cci].PreferredColorGroupListId.ValueString(), strconv.FormatBool(data.Sequences[i].Actions[ci].SlaClasses[cci].Strict.ValueBool()), strconv.FormatBool(data.Sequences[i].Actions[ci].SlaClasses[cci].FallbackToBestPath.ValueBool()), strconv.FormatBool(data.Sequences[i].Actions[ci].SlaClasses[cci].RemoteColorRestrict.ValueBool())} - keyValuesVariables := [...]string{"", "", "", "", ""} + keys := [...]string{"slaName.refId", "preferredColor", "preferredColorGroup.refId", "strict", "fallbackToBestPath", "preferredRemoteColor", "remoteColorRestrict"} + keyValues := [...]string{data.Sequences[i].Actions[ci].SlaClasses[cci].SlaClassListId.ValueString(), helpers.GetStringFromSet(data.Sequences[i].Actions[ci].SlaClasses[cci].PreferredColor).ValueString(), data.Sequences[i].Actions[ci].SlaClasses[cci].PreferredColorGroupListId.ValueString(), strconv.FormatBool(data.Sequences[i].Actions[ci].SlaClasses[cci].Strict.ValueBool()), strconv.FormatBool(data.Sequences[i].Actions[ci].SlaClasses[cci].FallbackToBestPath.ValueBool()), helpers.GetStringFromSet(data.Sequences[i].Actions[ci].SlaClasses[cci].PreferredRemoteColor).ValueString(), strconv.FormatBool(data.Sequences[i].Actions[ci].SlaClasses[cci].RemoteColorRestrict.ValueBool())} + keyValuesVariables := [...]string{"", "", "", "", "", "", ""} var ccr gjson.Result cr.Get("slaClass").ForEach( @@ -1961,9 +1961,9 @@ func (data *ApplicationPriorityTrafficPolicy) updateFromBody(ctx context.Context } } for cci := range data.Sequences[i].Actions[ci].SetParameters { - keys := [...]string{"dscp", "policer.refId", "preferredColorGroup.refId", "forwardingClass.refId", "localTlocList.restrict", "localTlocList.encap", "preferredRemoteColor.remoteColorRestrict", "tloc.encap", "tloc.ip", "tlocList.refId", "service.tloc.encap", "service.tloc.ip", "service.vpn", "service.type", "service.tlocList.refId", "serviceChain.type", "serviceChain.vpn", "serviceChain.local", "serviceChain.restrict", "serviceChain.tloc.encap", "serviceChain.tloc.ip", "serviceChain.tlocList.refId", "nextHop", "nextHopIpv6", "nextHopLoose", "vpn"} - keyValues := [...]string{strconv.FormatInt(data.Sequences[i].Actions[ci].SetParameters[cci].Dscp.ValueInt64(), 10), data.Sequences[i].Actions[ci].SetParameters[cci].PolicerId.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].PreferredColorGroupId.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].ForwardingClassListId.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].LocalTlocListRestrict.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].LocalTlocListEncapsulation.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].PreferredRemoteColorRestrict.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].TlocEncapsulation.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].TlocIp.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].TlocListId.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].ServiceTlocEncapsulation.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].ServiceTlocIp.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].ServiceVpn.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].ServiceType.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].ServiceTlocListId.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].ServiceChainType.ValueString(), strconv.FormatInt(data.Sequences[i].Actions[ci].SetParameters[cci].ServiceChainVpn.ValueInt64(), 10), strconv.FormatBool(data.Sequences[i].Actions[ci].SetParameters[cci].ServiceChainLocal.ValueBool()), strconv.FormatBool(data.Sequences[i].Actions[ci].SetParameters[cci].ServiceChainFallbackToRouting.ValueBool()), data.Sequences[i].Actions[ci].SetParameters[cci].ServiceChainTlocEncapsulation.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].ServiceChainTlocIp.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].ServiceChainTlocListId.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].NextHopIpv4.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].NextHopIpv6.ValueString(), strconv.FormatBool(data.Sequences[i].Actions[ci].SetParameters[cci].NextHopLoose.ValueBool()), data.Sequences[i].Actions[ci].SetParameters[cci].Vpn.ValueString()} - keyValuesVariables := [...]string{"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""} + keys := [...]string{"dscp", "policer.refId", "preferredColorGroup.refId", "forwardingClass.refId", "localTlocList.color", "localTlocList.restrict", "localTlocList.encap", "preferredRemoteColor.color", "preferredRemoteColor.remoteColorRestrict", "tloc.color", "tloc.encap", "tloc.ip", "tlocList.refId", "service.tloc.color", "service.tloc.encap", "service.tloc.ip", "service.vpn", "service.type", "service.tlocList.refId", "serviceChain.type", "serviceChain.vpn", "serviceChain.local", "serviceChain.restrict", "serviceChain.tloc.color", "serviceChain.tloc.encap", "serviceChain.tloc.ip", "serviceChain.tlocList.refId", "nextHop", "nextHopIpv6", "nextHopLoose", "vpn"} + keyValues := [...]string{strconv.FormatInt(data.Sequences[i].Actions[ci].SetParameters[cci].Dscp.ValueInt64(), 10), data.Sequences[i].Actions[ci].SetParameters[cci].PolicerId.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].PreferredColorGroupId.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].ForwardingClassListId.ValueString(), helpers.GetStringFromSet(data.Sequences[i].Actions[ci].SetParameters[cci].LocalTlocListColor).ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].LocalTlocListRestrict.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].LocalTlocListEncapsulation.ValueString(), helpers.GetStringFromSet(data.Sequences[i].Actions[ci].SetParameters[cci].PreferredRemoteColorId).ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].PreferredRemoteColorRestrict.ValueString(), helpers.GetStringFromSet(data.Sequences[i].Actions[ci].SetParameters[cci].TlocColor).ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].TlocEncapsulation.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].TlocIp.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].TlocListId.ValueString(), helpers.GetStringFromSet(data.Sequences[i].Actions[ci].SetParameters[cci].ServiceTlocColor).ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].ServiceTlocEncapsulation.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].ServiceTlocIp.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].ServiceVpn.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].ServiceType.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].ServiceTlocListId.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].ServiceChainType.ValueString(), strconv.FormatInt(data.Sequences[i].Actions[ci].SetParameters[cci].ServiceChainVpn.ValueInt64(), 10), strconv.FormatBool(data.Sequences[i].Actions[ci].SetParameters[cci].ServiceChainLocal.ValueBool()), strconv.FormatBool(data.Sequences[i].Actions[ci].SetParameters[cci].ServiceChainFallbackToRouting.ValueBool()), helpers.GetStringFromSet(data.Sequences[i].Actions[ci].SetParameters[cci].ServiceChainTlocColor).ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].ServiceChainTlocEncapsulation.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].ServiceChainTlocIp.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].ServiceChainTlocListId.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].NextHopIpv4.ValueString(), data.Sequences[i].Actions[ci].SetParameters[cci].NextHopIpv6.ValueString(), strconv.FormatBool(data.Sequences[i].Actions[ci].SetParameters[cci].NextHopLoose.ValueBool()), data.Sequences[i].Actions[ci].SetParameters[cci].Vpn.ValueString()} + keyValuesVariables := [...]string{"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""} var ccr gjson.Result cr.Get("set").ForEach( diff --git a/internal/provider/model_sdwan_policy_object_preferred_color_group.go b/internal/provider/model_sdwan_policy_object_preferred_color_group.go index 95a720feb..6ce15f26f 100644 --- a/internal/provider/model_sdwan_policy_object_preferred_color_group.go +++ b/internal/provider/model_sdwan_policy_object_preferred_color_group.go @@ -205,9 +205,9 @@ func (data *PolicyObjectPreferredColorGroup) updateFromBody(ctx context.Context, } path := "payload.data." for i := range data.Entries { - keys := [...]string{"primaryPreference.pathPreference", "secondaryPreference.pathPreference", "tertiaryPreference.pathPreference"} - keyValues := [...]string{data.Entries[i].PrimaryPathPreference.ValueString(), data.Entries[i].SecondaryPathPreference.ValueString(), data.Entries[i].TertiaryPathPreference.ValueString()} - keyValuesVariables := [...]string{"", "", ""} + keys := [...]string{"primaryPreference.colorPreference", "primaryPreference.pathPreference", "secondaryPreference.colorPreference", "secondaryPreference.pathPreference", "tertiaryPreference.colorPreference", "tertiaryPreference.pathPreference"} + keyValues := [...]string{helpers.GetStringFromSet(data.Entries[i].PrimaryColorPreference).ValueString(), data.Entries[i].PrimaryPathPreference.ValueString(), helpers.GetStringFromSet(data.Entries[i].SecondaryColorPreference).ValueString(), data.Entries[i].SecondaryPathPreference.ValueString(), helpers.GetStringFromSet(data.Entries[i].TertiaryColorPreference).ValueString(), data.Entries[i].TertiaryPathPreference.ValueString()} + keyValuesVariables := [...]string{"", "", "", "", "", ""} var r gjson.Result res.Get(path + "entries").ForEach( diff --git a/internal/provider/model_sdwan_service_dhcp_server_feature.go b/internal/provider/model_sdwan_service_dhcp_server_feature.go index a300fb6a7..9671ed110 100644 --- a/internal/provider/model_sdwan_service_dhcp_server_feature.go +++ b/internal/provider/model_sdwan_service_dhcp_server_feature.go @@ -672,9 +672,9 @@ func (data *ServiceDHCPServer) updateFromBody(ctx context.Context, res gjson.Res } } for i := range data.OptionCodes { - keys := [...]string{"code", "ascii", "hex"} - keyValues := [...]string{strconv.FormatInt(data.OptionCodes[i].Code.ValueInt64(), 10), data.OptionCodes[i].Ascii.ValueString(), data.OptionCodes[i].Hex.ValueString()} - keyValuesVariables := [...]string{data.OptionCodes[i].CodeVariable.ValueString(), data.OptionCodes[i].AsciiVariable.ValueString(), data.OptionCodes[i].HexVariable.ValueString()} + keys := [...]string{"code", "ascii", "hex", "ip"} + keyValues := [...]string{strconv.FormatInt(data.OptionCodes[i].Code.ValueInt64(), 10), data.OptionCodes[i].Ascii.ValueString(), data.OptionCodes[i].Hex.ValueString(), helpers.GetStringFromSet(data.OptionCodes[i].Ip).ValueString()} + keyValuesVariables := [...]string{data.OptionCodes[i].CodeVariable.ValueString(), data.OptionCodes[i].AsciiVariable.ValueString(), data.OptionCodes[i].HexVariable.ValueString(), data.OptionCodes[i].IpVariable.ValueString()} var r gjson.Result res.Get(path + "optionCode").ForEach( diff --git a/internal/provider/model_sdwan_service_ipv4_acl_feature.go b/internal/provider/model_sdwan_service_ipv4_acl_feature.go index f05992038..0a6d34dfa 100644 --- a/internal/provider/model_sdwan_service_ipv4_acl_feature.go +++ b/internal/provider/model_sdwan_service_ipv4_acl_feature.go @@ -631,9 +631,9 @@ func (data *ServiceIPv4ACL) updateFromBody(ctx context.Context, res gjson.Result } } for ci := range data.Sequences[i].MatchEntries { - keys := [...]string{"packetLength", "sourceDataPrefix.sourceDataPrefixList.refId", "sourceDataPrefix.sourceIpPrefix", "destinationDataPrefix.destinationDataPrefixList.refId", "destinationDataPrefix.destinationIpPrefix", "tcp"} - keyValues := [...]string{data.Sequences[i].MatchEntries[ci].PacketLength.ValueString(), data.Sequences[i].MatchEntries[ci].SourceDataPrefixListId.ValueString(), data.Sequences[i].MatchEntries[ci].SourceDataPrefix.ValueString(), data.Sequences[i].MatchEntries[ci].DestinationDataPrefixListId.ValueString(), data.Sequences[i].MatchEntries[ci].DestinationDataPrefix.ValueString(), data.Sequences[i].MatchEntries[ci].TcpState.ValueString()} - keyValuesVariables := [...]string{"", "", data.Sequences[i].MatchEntries[ci].SourceDataPrefixVariable.ValueString(), "", data.Sequences[i].MatchEntries[ci].DestinationDataPrefixVariable.ValueString(), ""} + keys := [...]string{"dscp", "packetLength", "protocol", "icmpMsg", "sourceDataPrefix.sourceDataPrefixList.refId", "sourceDataPrefix.sourceIpPrefix", "destinationDataPrefix.destinationDataPrefixList.refId", "destinationDataPrefix.destinationIpPrefix", "tcp"} + keyValues := [...]string{helpers.GetStringFromSet(data.Sequences[i].MatchEntries[ci].Dscps).ValueString(), data.Sequences[i].MatchEntries[ci].PacketLength.ValueString(), helpers.GetStringFromSet(data.Sequences[i].MatchEntries[ci].Protocols).ValueString(), helpers.GetStringFromSet(data.Sequences[i].MatchEntries[ci].IcmpMessages).ValueString(), data.Sequences[i].MatchEntries[ci].SourceDataPrefixListId.ValueString(), data.Sequences[i].MatchEntries[ci].SourceDataPrefix.ValueString(), data.Sequences[i].MatchEntries[ci].DestinationDataPrefixListId.ValueString(), data.Sequences[i].MatchEntries[ci].DestinationDataPrefix.ValueString(), data.Sequences[i].MatchEntries[ci].TcpState.ValueString()} + keyValuesVariables := [...]string{"", "", "", "", "", data.Sequences[i].MatchEntries[ci].SourceDataPrefixVariable.ValueString(), "", data.Sequences[i].MatchEntries[ci].DestinationDataPrefixVariable.ValueString(), ""} var cr gjson.Result r.Get("matchEntries").ForEach( diff --git a/internal/provider/model_sdwan_service_ipv6_acl_feature.go b/internal/provider/model_sdwan_service_ipv6_acl_feature.go index 803950642..13f0dfaf0 100644 --- a/internal/provider/model_sdwan_service_ipv6_acl_feature.go +++ b/internal/provider/model_sdwan_service_ipv6_acl_feature.go @@ -611,9 +611,9 @@ func (data *ServiceIPv6ACL) updateFromBody(ctx context.Context, res gjson.Result } } for ci := range data.Sequences[i].MatchEntries { - keys := [...]string{"nextHeader", "packetLength", "sourceDataPrefix.sourceDataPrefixList.refId", "sourceDataPrefix.sourceIpPrefix", "destinationDataPrefix.destinationDataPrefixList.refId", "destinationDataPrefix.destinationIpPrefix", "tcp"} - keyValues := [...]string{strconv.FormatInt(data.Sequences[i].MatchEntries[ci].NextHeader.ValueInt64(), 10), data.Sequences[i].MatchEntries[ci].PacketLength.ValueString(), data.Sequences[i].MatchEntries[ci].SourceDataPrefixListId.ValueString(), data.Sequences[i].MatchEntries[ci].SourceDataPrefix.ValueString(), data.Sequences[i].MatchEntries[ci].DestinationDataPrefixListId.ValueString(), data.Sequences[i].MatchEntries[ci].DestinationDataPrefix.ValueString(), data.Sequences[i].MatchEntries[ci].TcpState.ValueString()} - keyValuesVariables := [...]string{"", "", "", "", "", "", ""} + keys := [...]string{"nextHeader", "packetLength", "sourceDataPrefix.sourceDataPrefixList.refId", "sourceDataPrefix.sourceIpPrefix", "destinationDataPrefix.destinationDataPrefixList.refId", "destinationDataPrefix.destinationIpPrefix", "tcp", "trafficClass", "icmp6Msg"} + keyValues := [...]string{strconv.FormatInt(data.Sequences[i].MatchEntries[ci].NextHeader.ValueInt64(), 10), data.Sequences[i].MatchEntries[ci].PacketLength.ValueString(), data.Sequences[i].MatchEntries[ci].SourceDataPrefixListId.ValueString(), data.Sequences[i].MatchEntries[ci].SourceDataPrefix.ValueString(), data.Sequences[i].MatchEntries[ci].DestinationDataPrefixListId.ValueString(), data.Sequences[i].MatchEntries[ci].DestinationDataPrefix.ValueString(), data.Sequences[i].MatchEntries[ci].TcpState.ValueString(), helpers.GetStringFromSet(data.Sequences[i].MatchEntries[ci].TrafficClass).ValueString(), helpers.GetStringFromSet(data.Sequences[i].MatchEntries[ci].IcmpMessages).ValueString()} + keyValuesVariables := [...]string{"", "", "", "", "", "", "", "", ""} var cr gjson.Result r.Get("matchEntries").ForEach( diff --git a/internal/provider/model_sdwan_service_route_policy_feature.go b/internal/provider/model_sdwan_service_route_policy_feature.go index 547645f98..3ac4008a7 100644 --- a/internal/provider/model_sdwan_service_route_policy_feature.go +++ b/internal/provider/model_sdwan_service_route_policy_feature.go @@ -886,9 +886,9 @@ func (data *ServiceRoutePolicy) updateFromBody(ctx context.Context, res gjson.Re } } for ci := range data.Sequences[i].Actions { - keys := [...]string{"accept.setCommunity.additive", "accept.setLocalPreference", "accept.setMetric", "accept.setMetricType", "accept.setOmpTag", "accept.setOrigin", "accept.setOspfTag", "accept.setWeight", "accept.setIpv4NextHop", "accept.setIpv6NextHop"} - keyValues := [...]string{strconv.FormatBool(data.Sequences[i].Actions[ci].CommunityAdditive.ValueBool()), strconv.FormatInt(data.Sequences[i].Actions[ci].LocalPreference.ValueInt64(), 10), strconv.FormatInt(data.Sequences[i].Actions[ci].Metric.ValueInt64(), 10), data.Sequences[i].Actions[ci].MetricType.ValueString(), strconv.FormatInt(data.Sequences[i].Actions[ci].OmpTag.ValueInt64(), 10), data.Sequences[i].Actions[ci].Origin.ValueString(), strconv.FormatInt(data.Sequences[i].Actions[ci].OspfTag.ValueInt64(), 10), strconv.FormatInt(data.Sequences[i].Actions[ci].Weight.ValueInt64(), 10), data.Sequences[i].Actions[ci].Ipv4NextHop.ValueString(), data.Sequences[i].Actions[ci].Ipv6NextHop.ValueString()} - keyValuesVariables := [...]string{"", "", "", "", "", "", "", "", "", ""} + keys := [...]string{"accept.setAsPath.prepend", "accept.setCommunity.additive", "accept.setCommunity.community", "accept.setLocalPreference", "accept.setMetric", "accept.setMetricType", "accept.setOmpTag", "accept.setOrigin", "accept.setOspfTag", "accept.setWeight", "accept.setIpv4NextHop", "accept.setIpv6NextHop"} + keyValues := [...]string{helpers.GetStringFromSet(data.Sequences[i].Actions[ci].AsPathPrepend).ValueString(), strconv.FormatBool(data.Sequences[i].Actions[ci].CommunityAdditive.ValueBool()), helpers.GetStringFromSet(data.Sequences[i].Actions[ci].Community).ValueString(), strconv.FormatInt(data.Sequences[i].Actions[ci].LocalPreference.ValueInt64(), 10), strconv.FormatInt(data.Sequences[i].Actions[ci].Metric.ValueInt64(), 10), data.Sequences[i].Actions[ci].MetricType.ValueString(), strconv.FormatInt(data.Sequences[i].Actions[ci].OmpTag.ValueInt64(), 10), data.Sequences[i].Actions[ci].Origin.ValueString(), strconv.FormatInt(data.Sequences[i].Actions[ci].OspfTag.ValueInt64(), 10), strconv.FormatInt(data.Sequences[i].Actions[ci].Weight.ValueInt64(), 10), data.Sequences[i].Actions[ci].Ipv4NextHop.ValueString(), data.Sequences[i].Actions[ci].Ipv6NextHop.ValueString()} + keyValuesVariables := [...]string{"", "", data.Sequences[i].Actions[ci].CommunityVariable.ValueString(), "", "", "", "", "", "", "", "", ""} var cr gjson.Result r.Get("actions").ForEach( diff --git a/internal/provider/model_sdwan_transport_ipv4_acl_feature.go b/internal/provider/model_sdwan_transport_ipv4_acl_feature.go index 509667424..2f4c42103 100644 --- a/internal/provider/model_sdwan_transport_ipv4_acl_feature.go +++ b/internal/provider/model_sdwan_transport_ipv4_acl_feature.go @@ -631,9 +631,9 @@ func (data *TransportIPv4ACL) updateFromBody(ctx context.Context, res gjson.Resu } } for ci := range data.Sequences[i].MatchEntries { - keys := [...]string{"packetLength", "sourceDataPrefix.sourceDataPrefixList.refId", "sourceDataPrefix.sourceIpPrefix", "destinationDataPrefix.destinationDataPrefixList.refId", "destinationDataPrefix.destinationIpPrefix", "tcp"} - keyValues := [...]string{data.Sequences[i].MatchEntries[ci].PacketLength.ValueString(), data.Sequences[i].MatchEntries[ci].SourceDataPrefixListId.ValueString(), data.Sequences[i].MatchEntries[ci].SourceDataPrefix.ValueString(), data.Sequences[i].MatchEntries[ci].DestinationDataPrefixListId.ValueString(), data.Sequences[i].MatchEntries[ci].DestinationDataPrefix.ValueString(), data.Sequences[i].MatchEntries[ci].TcpState.ValueString()} - keyValuesVariables := [...]string{"", "", data.Sequences[i].MatchEntries[ci].SourceDataPrefixVariable.ValueString(), "", data.Sequences[i].MatchEntries[ci].DestinationDataPrefixVariable.ValueString(), ""} + keys := [...]string{"dscp", "packetLength", "protocol", "icmpMsg", "sourceDataPrefix.sourceDataPrefixList.refId", "sourceDataPrefix.sourceIpPrefix", "destinationDataPrefix.destinationDataPrefixList.refId", "destinationDataPrefix.destinationIpPrefix", "tcp"} + keyValues := [...]string{helpers.GetStringFromSet(data.Sequences[i].MatchEntries[ci].Dscps).ValueString(), data.Sequences[i].MatchEntries[ci].PacketLength.ValueString(), helpers.GetStringFromSet(data.Sequences[i].MatchEntries[ci].Protocols).ValueString(), helpers.GetStringFromSet(data.Sequences[i].MatchEntries[ci].IcmpMessages).ValueString(), data.Sequences[i].MatchEntries[ci].SourceDataPrefixListId.ValueString(), data.Sequences[i].MatchEntries[ci].SourceDataPrefix.ValueString(), data.Sequences[i].MatchEntries[ci].DestinationDataPrefixListId.ValueString(), data.Sequences[i].MatchEntries[ci].DestinationDataPrefix.ValueString(), data.Sequences[i].MatchEntries[ci].TcpState.ValueString()} + keyValuesVariables := [...]string{"", "", "", "", "", data.Sequences[i].MatchEntries[ci].SourceDataPrefixVariable.ValueString(), "", data.Sequences[i].MatchEntries[ci].DestinationDataPrefixVariable.ValueString(), ""} var cr gjson.Result r.Get("matchEntries").ForEach( diff --git a/internal/provider/model_sdwan_transport_ipv6_acl_feature.go b/internal/provider/model_sdwan_transport_ipv6_acl_feature.go index 9411dccc1..477f6afd8 100644 --- a/internal/provider/model_sdwan_transport_ipv6_acl_feature.go +++ b/internal/provider/model_sdwan_transport_ipv6_acl_feature.go @@ -611,9 +611,9 @@ func (data *TransportIPv6ACL) updateFromBody(ctx context.Context, res gjson.Resu } } for ci := range data.Sequences[i].MatchEntries { - keys := [...]string{"nextHeader", "packetLength", "sourceDataPrefix.sourceDataPrefixList.refId", "sourceDataPrefix.sourceIpPrefix", "destinationDataPrefix.destinationDataPrefixList.refId", "destinationDataPrefix.destinationIpPrefix", "tcp"} - keyValues := [...]string{strconv.FormatInt(data.Sequences[i].MatchEntries[ci].NextHeader.ValueInt64(), 10), data.Sequences[i].MatchEntries[ci].PacketLength.ValueString(), data.Sequences[i].MatchEntries[ci].SourceDataPrefixListId.ValueString(), data.Sequences[i].MatchEntries[ci].SourceDataPrefix.ValueString(), data.Sequences[i].MatchEntries[ci].DestinationDataPrefixListId.ValueString(), data.Sequences[i].MatchEntries[ci].DestinationDataPrefix.ValueString(), data.Sequences[i].MatchEntries[ci].TcpState.ValueString()} - keyValuesVariables := [...]string{"", "", "", "", "", "", ""} + keys := [...]string{"nextHeader", "packetLength", "sourceDataPrefix.sourceDataPrefixList.refId", "sourceDataPrefix.sourceIpPrefix", "destinationDataPrefix.destinationDataPrefixList.refId", "destinationDataPrefix.destinationIpPrefix", "tcp", "trafficClass", "icmp6Msg"} + keyValues := [...]string{strconv.FormatInt(data.Sequences[i].MatchEntries[ci].NextHeader.ValueInt64(), 10), data.Sequences[i].MatchEntries[ci].PacketLength.ValueString(), data.Sequences[i].MatchEntries[ci].SourceDataPrefixListId.ValueString(), data.Sequences[i].MatchEntries[ci].SourceDataPrefix.ValueString(), data.Sequences[i].MatchEntries[ci].DestinationDataPrefixListId.ValueString(), data.Sequences[i].MatchEntries[ci].DestinationDataPrefix.ValueString(), data.Sequences[i].MatchEntries[ci].TcpState.ValueString(), helpers.GetStringFromSet(data.Sequences[i].MatchEntries[ci].TrafficClass).ValueString(), helpers.GetStringFromSet(data.Sequences[i].MatchEntries[ci].IcmpMessages).ValueString()} + keyValuesVariables := [...]string{"", "", "", "", "", "", "", "", ""} var cr gjson.Result r.Get("matchEntries").ForEach( diff --git a/internal/provider/model_sdwan_transport_route_policy_feature.go b/internal/provider/model_sdwan_transport_route_policy_feature.go index fa4e1e07f..9046248df 100644 --- a/internal/provider/model_sdwan_transport_route_policy_feature.go +++ b/internal/provider/model_sdwan_transport_route_policy_feature.go @@ -886,9 +886,9 @@ func (data *TransportRoutePolicy) updateFromBody(ctx context.Context, res gjson. } } for ci := range data.Sequences[i].Actions { - keys := [...]string{"accept.setCommunity.additive", "accept.setLocalPreference", "accept.setMetric", "accept.setMetricType", "accept.setOmpTag", "accept.setOrigin", "accept.setOspfTag", "accept.setWeight", "accept.setIpv4NextHop", "accept.setIpv6NextHop"} - keyValues := [...]string{strconv.FormatBool(data.Sequences[i].Actions[ci].CommunityAdditive.ValueBool()), strconv.FormatInt(data.Sequences[i].Actions[ci].LocalPreference.ValueInt64(), 10), strconv.FormatInt(data.Sequences[i].Actions[ci].Metric.ValueInt64(), 10), data.Sequences[i].Actions[ci].MetricType.ValueString(), strconv.FormatInt(data.Sequences[i].Actions[ci].OmpTag.ValueInt64(), 10), data.Sequences[i].Actions[ci].Origin.ValueString(), strconv.FormatInt(data.Sequences[i].Actions[ci].OspfTag.ValueInt64(), 10), strconv.FormatInt(data.Sequences[i].Actions[ci].Weight.ValueInt64(), 10), data.Sequences[i].Actions[ci].Ipv4NextHop.ValueString(), data.Sequences[i].Actions[ci].Ipv6NextHop.ValueString()} - keyValuesVariables := [...]string{"", "", "", "", "", "", "", "", "", ""} + keys := [...]string{"accept.setAsPath.prepend", "accept.setCommunity.additive", "accept.setCommunity.community", "accept.setLocalPreference", "accept.setMetric", "accept.setMetricType", "accept.setOmpTag", "accept.setOrigin", "accept.setOspfTag", "accept.setWeight", "accept.setIpv4NextHop", "accept.setIpv6NextHop"} + keyValues := [...]string{helpers.GetStringFromSet(data.Sequences[i].Actions[ci].AsPathPrepend).ValueString(), strconv.FormatBool(data.Sequences[i].Actions[ci].CommunityAdditive.ValueBool()), helpers.GetStringFromSet(data.Sequences[i].Actions[ci].Community).ValueString(), strconv.FormatInt(data.Sequences[i].Actions[ci].LocalPreference.ValueInt64(), 10), strconv.FormatInt(data.Sequences[i].Actions[ci].Metric.ValueInt64(), 10), data.Sequences[i].Actions[ci].MetricType.ValueString(), strconv.FormatInt(data.Sequences[i].Actions[ci].OmpTag.ValueInt64(), 10), data.Sequences[i].Actions[ci].Origin.ValueString(), strconv.FormatInt(data.Sequences[i].Actions[ci].OspfTag.ValueInt64(), 10), strconv.FormatInt(data.Sequences[i].Actions[ci].Weight.ValueInt64(), 10), data.Sequences[i].Actions[ci].Ipv4NextHop.ValueString(), data.Sequences[i].Actions[ci].Ipv6NextHop.ValueString()} + keyValuesVariables := [...]string{"", "", data.Sequences[i].Actions[ci].CommunityVariable.ValueString(), "", "", "", "", "", "", "", "", ""} var cr gjson.Result r.Get("actions").ForEach(