// Copyright © 2023 Cisco Systems, Inc. and its affiliates.
// All rights reserved.
//
// Licensed under the Mozilla Public License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     https://mozilla.org/MPL/2.0/
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// SPDX-License-Identifier: MPL-2.0

// Code generated by "gen/generator.go"; DO NOT EDIT.

package provider

// Section below is generated&owned by "gen/generator.go". //template:begin imports
import (
	"context"
	"fmt"
	"net/url"
	"reflect"
	"regexp"
	"strconv"
	"strings"

	"github.com/CiscoDevNet/terraform-provider-iosxe/internal/provider/helpers"
	"github.com/hashicorp/terraform-plugin-framework/types"
	"github.com/tidwall/gjson"
	"github.com/tidwall/sjson"
)

// End of section. //template:end imports

// Section below is generated&owned by "gen/generator.go". //template:begin types
type InterfaceEthernet struct {
	Device                                  types.String                                      `tfsdk:"device"`
	Id                                      types.String                                      `tfsdk:"id"`
	Type                                    types.String                                      `tfsdk:"type"`
	Name                                    types.String                                      `tfsdk:"name"`
	MediaType                               types.String                                      `tfsdk:"media_type"`
	Mtu                                     types.Int64                                       `tfsdk:"mtu"`
	Bandwidth                               types.Int64                                       `tfsdk:"bandwidth"`
	Switchport                              types.Bool                                        `tfsdk:"switchport"`
	Description                             types.String                                      `tfsdk:"description"`
	Shutdown                                types.Bool                                        `tfsdk:"shutdown"`
	IpProxyArp                              types.Bool                                        `tfsdk:"ip_proxy_arp"`
	IpRedirects                             types.Bool                                        `tfsdk:"ip_redirects"`
	IpUnreachables                          types.Bool                                        `tfsdk:"ip_unreachables"`
	VrfForwarding                           types.String                                      `tfsdk:"vrf_forwarding"`
	Ipv4Address                             types.String                                      `tfsdk:"ipv4_address"`
	Ipv4AddressMask                         types.String                                      `tfsdk:"ipv4_address_mask"`
	Unnumbered                              types.String                                      `tfsdk:"unnumbered"`
	EncapsulationDot1qVlanId                types.Int64                                       `tfsdk:"encapsulation_dot1q_vlan_id"`
	ChannelGroupNumber                      types.Int64                                       `tfsdk:"channel_group_number"`
	ChannelGroupMode                        types.String                                      `tfsdk:"channel_group_mode"`
	IpDhcpRelaySourceInterface              types.String                                      `tfsdk:"ip_dhcp_relay_source_interface"`
	IpAccessGroupInEnable                   types.Bool                                        `tfsdk:"ip_access_group_in_enable"`
	IpAccessGroupIn                         types.String                                      `tfsdk:"ip_access_group_in"`
	IpAccessGroupOutEnable                  types.Bool                                        `tfsdk:"ip_access_group_out_enable"`
	IpAccessGroupOut                        types.String                                      `tfsdk:"ip_access_group_out"`
	SpanningTreeGuard                       types.String                                      `tfsdk:"spanning_tree_guard"`
	AutoQosClassify                         types.Bool                                        `tfsdk:"auto_qos_classify"`
	AutoQosClassifyPolice                   types.Bool                                        `tfsdk:"auto_qos_classify_police"`
	AutoQosTrust                            types.Bool                                        `tfsdk:"auto_qos_trust"`
	AutoQosTrustCos                         types.Bool                                        `tfsdk:"auto_qos_trust_cos"`
	AutoQosTrustDscp                        types.Bool                                        `tfsdk:"auto_qos_trust_dscp"`
	AutoQosVideoCts                         types.Bool                                        `tfsdk:"auto_qos_video_cts"`
	AutoQosVideoIpCamera                    types.Bool                                        `tfsdk:"auto_qos_video_ip_camera"`
	AutoQosVideoMediaPlayer                 types.Bool                                        `tfsdk:"auto_qos_video_media_player"`
	AutoQosVoip                             types.Bool                                        `tfsdk:"auto_qos_voip"`
	AutoQosVoipCiscoPhone                   types.Bool                                        `tfsdk:"auto_qos_voip_cisco_phone"`
	AutoQosVoipCiscoSoftphone               types.Bool                                        `tfsdk:"auto_qos_voip_cisco_softphone"`
	AutoQosVoipTrust                        types.Bool                                        `tfsdk:"auto_qos_voip_trust"`
	TrustDevice                             types.String                                      `tfsdk:"trust_device"`
	HelperAddresses                         []InterfaceEthernetHelperAddresses                `tfsdk:"helper_addresses"`
	SourceTemplate                          []InterfaceEthernetSourceTemplate                 `tfsdk:"source_template"`
	BfdTemplate                             types.String                                      `tfsdk:"bfd_template"`
	BfdEnable                               types.Bool                                        `tfsdk:"bfd_enable"`
	BfdLocalAddress                         types.String                                      `tfsdk:"bfd_local_address"`
	BfdInterval                             types.Int64                                       `tfsdk:"bfd_interval"`
	BfdIntervalMinRx                        types.Int64                                       `tfsdk:"bfd_interval_min_rx"`
	BfdIntervalMultiplier                   types.Int64                                       `tfsdk:"bfd_interval_multiplier"`
	BfdEcho                                 types.Bool                                        `tfsdk:"bfd_echo"`
	Ipv6Enable                              types.Bool                                        `tfsdk:"ipv6_enable"`
	Ipv6Mtu                                 types.Int64                                       `tfsdk:"ipv6_mtu"`
	Ipv6NdRaSuppressAll                     types.Bool                                        `tfsdk:"ipv6_nd_ra_suppress_all"`
	Ipv6AddressAutoconfigDefault            types.Bool                                        `tfsdk:"ipv6_address_autoconfig_default"`
	Ipv6AddressDhcp                         types.Bool                                        `tfsdk:"ipv6_address_dhcp"`
	Ipv6LinkLocalAddresses                  []InterfaceEthernetIpv6LinkLocalAddresses         `tfsdk:"ipv6_link_local_addresses"`
	Ipv6Addresses                           []InterfaceEthernetIpv6Addresses                  `tfsdk:"ipv6_addresses"`
	Ipv6FlowMonitors                        []InterfaceEthernetIpv6FlowMonitors               `tfsdk:"ipv6_flow_monitors"`
	ArpTimeout                              types.Int64                                       `tfsdk:"arp_timeout"`
	SpanningTreeLinkType                    types.String                                      `tfsdk:"spanning_tree_link_type"`
	BpduguardEnable                         types.Bool                                        `tfsdk:"bpduguard_enable"`
	BpduguardDisable                        types.Bool                                        `tfsdk:"bpduguard_disable"`
	SpanningTreePortfast                    types.Bool                                        `tfsdk:"spanning_tree_portfast"`
	SpanningTreePortfastDisable             types.Bool                                        `tfsdk:"spanning_tree_portfast_disable"`
	SpanningTreePortfastTrunk               types.Bool                                        `tfsdk:"spanning_tree_portfast_trunk"`
	SpanningTreePortfastEdge                types.Bool                                        `tfsdk:"spanning_tree_portfast_edge"`
	IpArpInspectionTrust                    types.Bool                                        `tfsdk:"ip_arp_inspection_trust"`
	IpArpInspectionLimitRate                types.Int64                                       `tfsdk:"ip_arp_inspection_limit_rate"`
	IpDhcpSnoopingTrust                     types.Bool                                        `tfsdk:"ip_dhcp_snooping_trust"`
	Speed100                                types.Bool                                        `tfsdk:"speed_100"`
	Speed1000                               types.Bool                                        `tfsdk:"speed_1000"`
	Speed2500                               types.Bool                                        `tfsdk:"speed_2500"`
	Speed5000                               types.Bool                                        `tfsdk:"speed_5000"`
	Speed10000                              types.Bool                                        `tfsdk:"speed_10000"`
	Speed25000                              types.Bool                                        `tfsdk:"speed_25000"`
	Speed40000                              types.Bool                                        `tfsdk:"speed_40000"`
	Speed100000                             types.Bool                                        `tfsdk:"speed_100000"`
	NegotiationAuto                         types.Bool                                        `tfsdk:"negotiation_auto"`
	SpeedNonegotiate                        types.Bool                                        `tfsdk:"speed_nonegotiate"`
	AuthenticationHostMode                  types.String                                      `tfsdk:"authentication_host_mode"`
	AuthenticationOrderDot1x                types.Bool                                        `tfsdk:"authentication_order_dot1x"`
	AuthenticationOrderDot1xMab             types.Bool                                        `tfsdk:"authentication_order_dot1x_mab"`
	AuthenticationOrderDot1xWebauth         types.Bool                                        `tfsdk:"authentication_order_dot1x_webauth"`
	AuthenticationOrderMab                  types.Bool                                        `tfsdk:"authentication_order_mab"`
	AuthenticationOrderMabDot1x             types.Bool                                        `tfsdk:"authentication_order_mab_dot1x"`
	AuthenticationOrderMabWebauth           types.Bool                                        `tfsdk:"authentication_order_mab_webauth"`
	AuthenticationOrderWebauth              types.Bool                                        `tfsdk:"authentication_order_webauth"`
	AuthenticationPriorityDot1x             types.Bool                                        `tfsdk:"authentication_priority_dot1x"`
	AuthenticationPriorityDot1xMab          types.Bool                                        `tfsdk:"authentication_priority_dot1x_mab"`
	AuthenticationPriorityDot1xWebauth      types.Bool                                        `tfsdk:"authentication_priority_dot1x_webauth"`
	AuthenticationPriorityMab               types.Bool                                        `tfsdk:"authentication_priority_mab"`
	AuthenticationPriorityMabDot1x          types.Bool                                        `tfsdk:"authentication_priority_mab_dot1x"`
	AuthenticationPriorityMabWebauth        types.Bool                                        `tfsdk:"authentication_priority_mab_webauth"`
	AuthenticationPriorityWebauth           types.Bool                                        `tfsdk:"authentication_priority_webauth"`
	AuthenticationPortControl               types.String                                      `tfsdk:"authentication_port_control"`
	AuthenticationPeriodic                  types.Bool                                        `tfsdk:"authentication_periodic"`
	AuthenticationTimerReauthenticate       types.Int64                                       `tfsdk:"authentication_timer_reauthenticate"`
	AuthenticationTimerReauthenticateServer types.Bool                                        `tfsdk:"authentication_timer_reauthenticate_server"`
	Mab                                     types.Bool                                        `tfsdk:"mab"`
	MabEap                                  types.Bool                                        `tfsdk:"mab_eap"`
	Dot1xPae                                types.String                                      `tfsdk:"dot1x_pae"`
	Dot1xTimeoutAuthPeriod                  types.Int64                                       `tfsdk:"dot1x_timeout_auth_period"`
	Dot1xTimeoutHeldPeriod                  types.Int64                                       `tfsdk:"dot1x_timeout_held_period"`
	Dot1xTimeoutQuietPeriod                 types.Int64                                       `tfsdk:"dot1x_timeout_quiet_period"`
	Dot1xTimeoutRatelimitPeriod             types.Int64                                       `tfsdk:"dot1x_timeout_ratelimit_period"`
	Dot1xTimeoutServerTimeout               types.Int64                                       `tfsdk:"dot1x_timeout_server_timeout"`
	Dot1xTimeoutStartPeriod                 types.Int64                                       `tfsdk:"dot1x_timeout_start_period"`
	Dot1xTimeoutSuppTimeout                 types.Int64                                       `tfsdk:"dot1x_timeout_supp_timeout"`
	Dot1xTimeoutTxPeriod                    types.Int64                                       `tfsdk:"dot1x_timeout_tx_period"`
	Dot1xMaxReq                             types.Int64                                       `tfsdk:"dot1x_max_req"`
	Dot1xMaxReauthReq                       types.Int64                                       `tfsdk:"dot1x_max_reauth_req"`
	ServicePolicyInput                      types.String                                      `tfsdk:"service_policy_input"`
	ServicePolicyOutput                     types.String                                      `tfsdk:"service_policy_output"`
	IpFlowMonitors                          []InterfaceEthernetIpFlowMonitors                 `tfsdk:"ip_flow_monitors"`
	LoadInterval                            types.Int64                                       `tfsdk:"load_interval"`
	SnmpTrapLinkStatus                      types.Bool                                        `tfsdk:"snmp_trap_link_status"`
	LoggingEventLinkStatusEnable            types.Bool                                        `tfsdk:"logging_event_link_status_enable"`
	IpNbarProtocolDiscovery                 types.Bool                                        `tfsdk:"ip_nbar_protocol_discovery"`
	DeviceTracking                          types.Bool                                        `tfsdk:"device_tracking"`
	DeviceTrackingAttachedPolicies          []InterfaceEthernetDeviceTrackingAttachedPolicies `tfsdk:"device_tracking_attached_policies"`
	CdpEnable                               types.Bool                                        `tfsdk:"cdp_enable"`
	CdpTlvApp                               types.Bool                                        `tfsdk:"cdp_tlv_app"`
	CdpTlvLocation                          types.Bool                                        `tfsdk:"cdp_tlv_location"`
	CdpTlvServerLocation                    types.Bool                                        `tfsdk:"cdp_tlv_server_location"`
	IpNatInside                             types.Bool                                        `tfsdk:"ip_nat_inside"`
	IpNatOutside                            types.Bool                                        `tfsdk:"ip_nat_outside"`
}

type InterfaceEthernetData struct {
	Device                                  types.String                                      `tfsdk:"device"`
	Id                                      types.String                                      `tfsdk:"id"`
	Type                                    types.String                                      `tfsdk:"type"`
	Name                                    types.String                                      `tfsdk:"name"`
	MediaType                               types.String                                      `tfsdk:"media_type"`
	Mtu                                     types.Int64                                       `tfsdk:"mtu"`
	Bandwidth                               types.Int64                                       `tfsdk:"bandwidth"`
	Switchport                              types.Bool                                        `tfsdk:"switchport"`
	Description                             types.String                                      `tfsdk:"description"`
	Shutdown                                types.Bool                                        `tfsdk:"shutdown"`
	IpProxyArp                              types.Bool                                        `tfsdk:"ip_proxy_arp"`
	IpRedirects                             types.Bool                                        `tfsdk:"ip_redirects"`
	IpUnreachables                          types.Bool                                        `tfsdk:"ip_unreachables"`
	VrfForwarding                           types.String                                      `tfsdk:"vrf_forwarding"`
	Ipv4Address                             types.String                                      `tfsdk:"ipv4_address"`
	Ipv4AddressMask                         types.String                                      `tfsdk:"ipv4_address_mask"`
	Unnumbered                              types.String                                      `tfsdk:"unnumbered"`
	EncapsulationDot1qVlanId                types.Int64                                       `tfsdk:"encapsulation_dot1q_vlan_id"`
	ChannelGroupNumber                      types.Int64                                       `tfsdk:"channel_group_number"`
	ChannelGroupMode                        types.String                                      `tfsdk:"channel_group_mode"`
	IpDhcpRelaySourceInterface              types.String                                      `tfsdk:"ip_dhcp_relay_source_interface"`
	IpAccessGroupInEnable                   types.Bool                                        `tfsdk:"ip_access_group_in_enable"`
	IpAccessGroupIn                         types.String                                      `tfsdk:"ip_access_group_in"`
	IpAccessGroupOutEnable                  types.Bool                                        `tfsdk:"ip_access_group_out_enable"`
	IpAccessGroupOut                        types.String                                      `tfsdk:"ip_access_group_out"`
	SpanningTreeGuard                       types.String                                      `tfsdk:"spanning_tree_guard"`
	AutoQosClassify                         types.Bool                                        `tfsdk:"auto_qos_classify"`
	AutoQosClassifyPolice                   types.Bool                                        `tfsdk:"auto_qos_classify_police"`
	AutoQosTrust                            types.Bool                                        `tfsdk:"auto_qos_trust"`
	AutoQosTrustCos                         types.Bool                                        `tfsdk:"auto_qos_trust_cos"`
	AutoQosTrustDscp                        types.Bool                                        `tfsdk:"auto_qos_trust_dscp"`
	AutoQosVideoCts                         types.Bool                                        `tfsdk:"auto_qos_video_cts"`
	AutoQosVideoIpCamera                    types.Bool                                        `tfsdk:"auto_qos_video_ip_camera"`
	AutoQosVideoMediaPlayer                 types.Bool                                        `tfsdk:"auto_qos_video_media_player"`
	AutoQosVoip                             types.Bool                                        `tfsdk:"auto_qos_voip"`
	AutoQosVoipCiscoPhone                   types.Bool                                        `tfsdk:"auto_qos_voip_cisco_phone"`
	AutoQosVoipCiscoSoftphone               types.Bool                                        `tfsdk:"auto_qos_voip_cisco_softphone"`
	AutoQosVoipTrust                        types.Bool                                        `tfsdk:"auto_qos_voip_trust"`
	TrustDevice                             types.String                                      `tfsdk:"trust_device"`
	HelperAddresses                         []InterfaceEthernetHelperAddresses                `tfsdk:"helper_addresses"`
	SourceTemplate                          []InterfaceEthernetSourceTemplate                 `tfsdk:"source_template"`
	BfdTemplate                             types.String                                      `tfsdk:"bfd_template"`
	BfdEnable                               types.Bool                                        `tfsdk:"bfd_enable"`
	BfdLocalAddress                         types.String                                      `tfsdk:"bfd_local_address"`
	BfdInterval                             types.Int64                                       `tfsdk:"bfd_interval"`
	BfdIntervalMinRx                        types.Int64                                       `tfsdk:"bfd_interval_min_rx"`
	BfdIntervalMultiplier                   types.Int64                                       `tfsdk:"bfd_interval_multiplier"`
	BfdEcho                                 types.Bool                                        `tfsdk:"bfd_echo"`
	Ipv6Enable                              types.Bool                                        `tfsdk:"ipv6_enable"`
	Ipv6Mtu                                 types.Int64                                       `tfsdk:"ipv6_mtu"`
	Ipv6NdRaSuppressAll                     types.Bool                                        `tfsdk:"ipv6_nd_ra_suppress_all"`
	Ipv6AddressAutoconfigDefault            types.Bool                                        `tfsdk:"ipv6_address_autoconfig_default"`
	Ipv6AddressDhcp                         types.Bool                                        `tfsdk:"ipv6_address_dhcp"`
	Ipv6LinkLocalAddresses                  []InterfaceEthernetIpv6LinkLocalAddresses         `tfsdk:"ipv6_link_local_addresses"`
	Ipv6Addresses                           []InterfaceEthernetIpv6Addresses                  `tfsdk:"ipv6_addresses"`
	Ipv6FlowMonitors                        []InterfaceEthernetIpv6FlowMonitors               `tfsdk:"ipv6_flow_monitors"`
	ArpTimeout                              types.Int64                                       `tfsdk:"arp_timeout"`
	SpanningTreeLinkType                    types.String                                      `tfsdk:"spanning_tree_link_type"`
	BpduguardEnable                         types.Bool                                        `tfsdk:"bpduguard_enable"`
	BpduguardDisable                        types.Bool                                        `tfsdk:"bpduguard_disable"`
	SpanningTreePortfast                    types.Bool                                        `tfsdk:"spanning_tree_portfast"`
	SpanningTreePortfastDisable             types.Bool                                        `tfsdk:"spanning_tree_portfast_disable"`
	SpanningTreePortfastTrunk               types.Bool                                        `tfsdk:"spanning_tree_portfast_trunk"`
	SpanningTreePortfastEdge                types.Bool                                        `tfsdk:"spanning_tree_portfast_edge"`
	IpArpInspectionTrust                    types.Bool                                        `tfsdk:"ip_arp_inspection_trust"`
	IpArpInspectionLimitRate                types.Int64                                       `tfsdk:"ip_arp_inspection_limit_rate"`
	IpDhcpSnoopingTrust                     types.Bool                                        `tfsdk:"ip_dhcp_snooping_trust"`
	Speed100                                types.Bool                                        `tfsdk:"speed_100"`
	Speed1000                               types.Bool                                        `tfsdk:"speed_1000"`
	Speed2500                               types.Bool                                        `tfsdk:"speed_2500"`
	Speed5000                               types.Bool                                        `tfsdk:"speed_5000"`
	Speed10000                              types.Bool                                        `tfsdk:"speed_10000"`
	Speed25000                              types.Bool                                        `tfsdk:"speed_25000"`
	Speed40000                              types.Bool                                        `tfsdk:"speed_40000"`
	Speed100000                             types.Bool                                        `tfsdk:"speed_100000"`
	NegotiationAuto                         types.Bool                                        `tfsdk:"negotiation_auto"`
	SpeedNonegotiate                        types.Bool                                        `tfsdk:"speed_nonegotiate"`
	AuthenticationHostMode                  types.String                                      `tfsdk:"authentication_host_mode"`
	AuthenticationOrderDot1x                types.Bool                                        `tfsdk:"authentication_order_dot1x"`
	AuthenticationOrderDot1xMab             types.Bool                                        `tfsdk:"authentication_order_dot1x_mab"`
	AuthenticationOrderDot1xWebauth         types.Bool                                        `tfsdk:"authentication_order_dot1x_webauth"`
	AuthenticationOrderMab                  types.Bool                                        `tfsdk:"authentication_order_mab"`
	AuthenticationOrderMabDot1x             types.Bool                                        `tfsdk:"authentication_order_mab_dot1x"`
	AuthenticationOrderMabWebauth           types.Bool                                        `tfsdk:"authentication_order_mab_webauth"`
	AuthenticationOrderWebauth              types.Bool                                        `tfsdk:"authentication_order_webauth"`
	AuthenticationPriorityDot1x             types.Bool                                        `tfsdk:"authentication_priority_dot1x"`
	AuthenticationPriorityDot1xMab          types.Bool                                        `tfsdk:"authentication_priority_dot1x_mab"`
	AuthenticationPriorityDot1xWebauth      types.Bool                                        `tfsdk:"authentication_priority_dot1x_webauth"`
	AuthenticationPriorityMab               types.Bool                                        `tfsdk:"authentication_priority_mab"`
	AuthenticationPriorityMabDot1x          types.Bool                                        `tfsdk:"authentication_priority_mab_dot1x"`
	AuthenticationPriorityMabWebauth        types.Bool                                        `tfsdk:"authentication_priority_mab_webauth"`
	AuthenticationPriorityWebauth           types.Bool                                        `tfsdk:"authentication_priority_webauth"`
	AuthenticationPortControl               types.String                                      `tfsdk:"authentication_port_control"`
	AuthenticationPeriodic                  types.Bool                                        `tfsdk:"authentication_periodic"`
	AuthenticationTimerReauthenticate       types.Int64                                       `tfsdk:"authentication_timer_reauthenticate"`
	AuthenticationTimerReauthenticateServer types.Bool                                        `tfsdk:"authentication_timer_reauthenticate_server"`
	Mab                                     types.Bool                                        `tfsdk:"mab"`
	MabEap                                  types.Bool                                        `tfsdk:"mab_eap"`
	Dot1xPae                                types.String                                      `tfsdk:"dot1x_pae"`
	Dot1xTimeoutAuthPeriod                  types.Int64                                       `tfsdk:"dot1x_timeout_auth_period"`
	Dot1xTimeoutHeldPeriod                  types.Int64                                       `tfsdk:"dot1x_timeout_held_period"`
	Dot1xTimeoutQuietPeriod                 types.Int64                                       `tfsdk:"dot1x_timeout_quiet_period"`
	Dot1xTimeoutRatelimitPeriod             types.Int64                                       `tfsdk:"dot1x_timeout_ratelimit_period"`
	Dot1xTimeoutServerTimeout               types.Int64                                       `tfsdk:"dot1x_timeout_server_timeout"`
	Dot1xTimeoutStartPeriod                 types.Int64                                       `tfsdk:"dot1x_timeout_start_period"`
	Dot1xTimeoutSuppTimeout                 types.Int64                                       `tfsdk:"dot1x_timeout_supp_timeout"`
	Dot1xTimeoutTxPeriod                    types.Int64                                       `tfsdk:"dot1x_timeout_tx_period"`
	Dot1xMaxReq                             types.Int64                                       `tfsdk:"dot1x_max_req"`
	Dot1xMaxReauthReq                       types.Int64                                       `tfsdk:"dot1x_max_reauth_req"`
	ServicePolicyInput                      types.String                                      `tfsdk:"service_policy_input"`
	ServicePolicyOutput                     types.String                                      `tfsdk:"service_policy_output"`
	IpFlowMonitors                          []InterfaceEthernetIpFlowMonitors                 `tfsdk:"ip_flow_monitors"`
	LoadInterval                            types.Int64                                       `tfsdk:"load_interval"`
	SnmpTrapLinkStatus                      types.Bool                                        `tfsdk:"snmp_trap_link_status"`
	LoggingEventLinkStatusEnable            types.Bool                                        `tfsdk:"logging_event_link_status_enable"`
	IpNbarProtocolDiscovery                 types.Bool                                        `tfsdk:"ip_nbar_protocol_discovery"`
	DeviceTracking                          types.Bool                                        `tfsdk:"device_tracking"`
	DeviceTrackingAttachedPolicies          []InterfaceEthernetDeviceTrackingAttachedPolicies `tfsdk:"device_tracking_attached_policies"`
	CdpEnable                               types.Bool                                        `tfsdk:"cdp_enable"`
	CdpTlvApp                               types.Bool                                        `tfsdk:"cdp_tlv_app"`
	CdpTlvLocation                          types.Bool                                        `tfsdk:"cdp_tlv_location"`
	CdpTlvServerLocation                    types.Bool                                        `tfsdk:"cdp_tlv_server_location"`
	IpNatInside                             types.Bool                                        `tfsdk:"ip_nat_inside"`
	IpNatOutside                            types.Bool                                        `tfsdk:"ip_nat_outside"`
}
type InterfaceEthernetHelperAddresses struct {
	Address types.String `tfsdk:"address"`
	Global  types.Bool   `tfsdk:"global"`
	Vrf     types.String `tfsdk:"vrf"`
}
type InterfaceEthernetSourceTemplate struct {
	TemplateName types.String `tfsdk:"template_name"`
	Merge        types.Bool   `tfsdk:"merge"`
}
type InterfaceEthernetIpv6LinkLocalAddresses struct {
	Address   types.String `tfsdk:"address"`
	LinkLocal types.Bool   `tfsdk:"link_local"`
}
type InterfaceEthernetIpv6Addresses struct {
	Prefix types.String `tfsdk:"prefix"`
	Eui64  types.Bool   `tfsdk:"eui_64"`
}
type InterfaceEthernetIpv6FlowMonitors struct {
	Name      types.String `tfsdk:"name"`
	Direction types.String `tfsdk:"direction"`
}
type InterfaceEthernetIpFlowMonitors struct {
	Name      types.String `tfsdk:"name"`
	Direction types.String `tfsdk:"direction"`
}
type InterfaceEthernetDeviceTrackingAttachedPolicies struct {
	Name types.String `tfsdk:"name"`
}

// End of section. //template:end types

// Section below is generated&owned by "gen/generator.go". //template:begin getPath

func (data InterfaceEthernet) getPath() string {
	return fmt.Sprintf("Cisco-IOS-XE-native:native/interface/%s=%v", url.QueryEscape(fmt.Sprintf("%v", data.Type.ValueString())), url.QueryEscape(fmt.Sprintf("%v", data.Name.ValueString())))
}

func (data InterfaceEthernetData) getPath() string {
	return fmt.Sprintf("Cisco-IOS-XE-native:native/interface/%s=%v", url.QueryEscape(fmt.Sprintf("%v", data.Type.ValueString())), url.QueryEscape(fmt.Sprintf("%v", data.Name.ValueString())))
}

// if last path element has a key -> remove it
func (data InterfaceEthernet) getPathShort() string {
	path := data.getPath()
	re := regexp.MustCompile(`(.*)=[^\/]*$`)
	matches := re.FindStringSubmatch(path)
	if len(matches) <= 1 {
		return path
	}
	return matches[1]
}

// End of section. //template:end getPath

// Section below is generated&owned by "gen/generator.go". //template:begin toBody

func (data InterfaceEthernet) toBody(ctx context.Context) string {
	body := `{"` + helpers.LastElement(data.getPath()) + `":{}}`
	if !data.Name.IsNull() && !data.Name.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"name", data.Name.ValueString())
	}
	if !data.MediaType.IsNull() && !data.MediaType.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"media-type", data.MediaType.ValueString())
	}
	if !data.Mtu.IsNull() && !data.Mtu.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"mtu", strconv.FormatInt(data.Mtu.ValueInt64(), 10))
	}
	if !data.Bandwidth.IsNull() && !data.Bandwidth.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"bandwidth.kilobits", strconv.FormatInt(data.Bandwidth.ValueInt64(), 10))
	}
	if !data.Switchport.IsNull() && !data.Switchport.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"switchport-conf.switchport", data.Switchport.ValueBool())
	}
	if !data.Description.IsNull() && !data.Description.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"description", data.Description.ValueString())
	}
	if !data.Shutdown.IsNull() && !data.Shutdown.IsUnknown() {
		if data.Shutdown.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"shutdown", map[string]string{})
		}
	}
	if !data.IpProxyArp.IsNull() && !data.IpProxyArp.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.proxy-arp", data.IpProxyArp.ValueBool())
	}
	if !data.IpRedirects.IsNull() && !data.IpRedirects.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.redirects", data.IpRedirects.ValueBool())
	}
	if !data.IpUnreachables.IsNull() && !data.IpUnreachables.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-icmp:unreachables", data.IpUnreachables.ValueBool())
	}
	if !data.VrfForwarding.IsNull() && !data.VrfForwarding.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"vrf.forwarding", data.VrfForwarding.ValueString())
	}
	if !data.Ipv4Address.IsNull() && !data.Ipv4Address.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.address.primary.address", data.Ipv4Address.ValueString())
	}
	if !data.Ipv4AddressMask.IsNull() && !data.Ipv4AddressMask.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.address.primary.mask", data.Ipv4AddressMask.ValueString())
	}
	if !data.Unnumbered.IsNull() && !data.Unnumbered.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.unnumbered", data.Unnumbered.ValueString())
	}
	if !data.EncapsulationDot1qVlanId.IsNull() && !data.EncapsulationDot1qVlanId.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"encapsulation.dot1Q.vlan-id", strconv.FormatInt(data.EncapsulationDot1qVlanId.ValueInt64(), 10))
	}
	if !data.ChannelGroupNumber.IsNull() && !data.ChannelGroupNumber.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-ethernet:channel-group.number", strconv.FormatInt(data.ChannelGroupNumber.ValueInt64(), 10))
	}
	if !data.ChannelGroupMode.IsNull() && !data.ChannelGroupMode.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-ethernet:channel-group.mode", data.ChannelGroupMode.ValueString())
	}
	if !data.IpDhcpRelaySourceInterface.IsNull() && !data.IpDhcpRelaySourceInterface.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.dhcp.Cisco-IOS-XE-dhcp:relay.source-interface", data.IpDhcpRelaySourceInterface.ValueString())
	}
	if !data.IpAccessGroupInEnable.IsNull() && !data.IpAccessGroupInEnable.IsUnknown() {
		if data.IpAccessGroupInEnable.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.access-group.in.acl.in", map[string]string{})
		}
	}
	if !data.IpAccessGroupIn.IsNull() && !data.IpAccessGroupIn.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.access-group.in.acl.acl-name", data.IpAccessGroupIn.ValueString())
	}
	if !data.IpAccessGroupOutEnable.IsNull() && !data.IpAccessGroupOutEnable.IsUnknown() {
		if data.IpAccessGroupOutEnable.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.access-group.out.acl.out", map[string]string{})
		}
	}
	if !data.IpAccessGroupOut.IsNull() && !data.IpAccessGroupOut.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.access-group.out.acl.acl-name", data.IpAccessGroupOut.ValueString())
	}
	if !data.SpanningTreeGuard.IsNull() && !data.SpanningTreeGuard.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-spanning-tree:spanning-tree.guard", data.SpanningTreeGuard.ValueString())
	}
	if !data.AutoQosClassify.IsNull() && !data.AutoQosClassify.IsUnknown() {
		if data.AutoQosClassify.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-switch:auto.qos.classify", map[string]string{})
		}
	}
	if !data.AutoQosClassifyPolice.IsNull() && !data.AutoQosClassifyPolice.IsUnknown() {
		if data.AutoQosClassifyPolice.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-switch:auto.qos.classify.police", map[string]string{})
		}
	}
	if !data.AutoQosTrust.IsNull() && !data.AutoQosTrust.IsUnknown() {
		if data.AutoQosTrust.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-switch:auto.qos.trust", map[string]string{})
		}
	}
	if !data.AutoQosTrustCos.IsNull() && !data.AutoQosTrustCos.IsUnknown() {
		if data.AutoQosTrustCos.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-switch:auto.qos.trust.cos", map[string]string{})
		}
	}
	if !data.AutoQosTrustDscp.IsNull() && !data.AutoQosTrustDscp.IsUnknown() {
		if data.AutoQosTrustDscp.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-switch:auto.qos.trust.dscp", map[string]string{})
		}
	}
	if !data.AutoQosVideoCts.IsNull() && !data.AutoQosVideoCts.IsUnknown() {
		if data.AutoQosVideoCts.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-switch:auto.qos.video.cts", map[string]string{})
		}
	}
	if !data.AutoQosVideoIpCamera.IsNull() && !data.AutoQosVideoIpCamera.IsUnknown() {
		if data.AutoQosVideoIpCamera.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-switch:auto.qos.video.ip-camera", map[string]string{})
		}
	}
	if !data.AutoQosVideoMediaPlayer.IsNull() && !data.AutoQosVideoMediaPlayer.IsUnknown() {
		if data.AutoQosVideoMediaPlayer.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-switch:auto.qos.video.media-player", map[string]string{})
		}
	}
	if !data.AutoQosVoip.IsNull() && !data.AutoQosVoip.IsUnknown() {
		if data.AutoQosVoip.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-switch:auto.qos.voip", map[string]string{})
		}
	}
	if !data.AutoQosVoipCiscoPhone.IsNull() && !data.AutoQosVoipCiscoPhone.IsUnknown() {
		if data.AutoQosVoipCiscoPhone.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-switch:auto.qos.voip.cisco-phone", map[string]string{})
		}
	}
	if !data.AutoQosVoipCiscoSoftphone.IsNull() && !data.AutoQosVoipCiscoSoftphone.IsUnknown() {
		if data.AutoQosVoipCiscoSoftphone.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-switch:auto.qos.voip.cisco-softphone", map[string]string{})
		}
	}
	if !data.AutoQosVoipTrust.IsNull() && !data.AutoQosVoipTrust.IsUnknown() {
		if data.AutoQosVoipTrust.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-switch:auto.qos.voip.trust", map[string]string{})
		}
	}
	if !data.TrustDevice.IsNull() && !data.TrustDevice.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"trust.device", data.TrustDevice.ValueString())
	}
	if !data.BfdTemplate.IsNull() && !data.BfdTemplate.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"bfd.Cisco-IOS-XE-bfd:template", data.BfdTemplate.ValueString())
	}
	if !data.BfdEnable.IsNull() && !data.BfdEnable.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"bfd.Cisco-IOS-XE-bfd:enable", data.BfdEnable.ValueBool())
	}
	if !data.BfdLocalAddress.IsNull() && !data.BfdLocalAddress.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"bfd.Cisco-IOS-XE-bfd:local-address", data.BfdLocalAddress.ValueString())
	}
	if !data.BfdInterval.IsNull() && !data.BfdInterval.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"bfd.Cisco-IOS-XE-bfd:interval-interface.msecs", strconv.FormatInt(data.BfdInterval.ValueInt64(), 10))
	}
	if !data.BfdIntervalMinRx.IsNull() && !data.BfdIntervalMinRx.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"bfd.Cisco-IOS-XE-bfd:interval-interface.min_rx", strconv.FormatInt(data.BfdIntervalMinRx.ValueInt64(), 10))
	}
	if !data.BfdIntervalMultiplier.IsNull() && !data.BfdIntervalMultiplier.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"bfd.Cisco-IOS-XE-bfd:interval-interface.multiplier", strconv.FormatInt(data.BfdIntervalMultiplier.ValueInt64(), 10))
	}
	if !data.BfdEcho.IsNull() && !data.BfdEcho.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"bfd.Cisco-IOS-XE-bfd:echo", data.BfdEcho.ValueBool())
	}
	if !data.Ipv6Enable.IsNull() && !data.Ipv6Enable.IsUnknown() {
		if data.Ipv6Enable.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ipv6.enable", map[string]string{})
		}
	}
	if !data.Ipv6Mtu.IsNull() && !data.Ipv6Mtu.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ipv6.mtu", strconv.FormatInt(data.Ipv6Mtu.ValueInt64(), 10))
	}
	if !data.Ipv6NdRaSuppressAll.IsNull() && !data.Ipv6NdRaSuppressAll.IsUnknown() {
		if data.Ipv6NdRaSuppressAll.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ipv6.nd.Cisco-IOS-XE-nd:ra.suppress.all", map[string]string{})
		}
	}
	if !data.Ipv6AddressAutoconfigDefault.IsNull() && !data.Ipv6AddressAutoconfigDefault.IsUnknown() {
		if data.Ipv6AddressAutoconfigDefault.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ipv6.address.autoconfig.default", map[string]string{})
		}
	}
	if !data.Ipv6AddressDhcp.IsNull() && !data.Ipv6AddressDhcp.IsUnknown() {
		if data.Ipv6AddressDhcp.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ipv6.address.dhcp", map[string]string{})
		}
	}
	if !data.ArpTimeout.IsNull() && !data.ArpTimeout.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"arp.timeout", strconv.FormatInt(data.ArpTimeout.ValueInt64(), 10))
	}
	if !data.SpanningTreeLinkType.IsNull() && !data.SpanningTreeLinkType.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-spanning-tree:spanning-tree.link-type", data.SpanningTreeLinkType.ValueString())
	}
	if !data.BpduguardEnable.IsNull() && !data.BpduguardEnable.IsUnknown() {
		if data.BpduguardEnable.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-spanning-tree:spanning-tree.bpduguard.enable", map[string]string{})
		}
	}
	if !data.BpduguardDisable.IsNull() && !data.BpduguardDisable.IsUnknown() {
		if data.BpduguardDisable.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-spanning-tree:spanning-tree.bpduguard.disable", map[string]string{})
		}
	}
	if !data.SpanningTreePortfast.IsNull() && !data.SpanningTreePortfast.IsUnknown() {
		if data.SpanningTreePortfast.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-spanning-tree:spanning-tree.portfast", map[string]string{})
		}
	}
	if !data.SpanningTreePortfastDisable.IsNull() && !data.SpanningTreePortfastDisable.IsUnknown() {
		if data.SpanningTreePortfastDisable.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-spanning-tree:spanning-tree.portfast.disable", map[string]string{})
		}
	}
	if !data.SpanningTreePortfastTrunk.IsNull() && !data.SpanningTreePortfastTrunk.IsUnknown() {
		if data.SpanningTreePortfastTrunk.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-spanning-tree:spanning-tree.portfast.trunk", map[string]string{})
		}
	}
	if !data.SpanningTreePortfastEdge.IsNull() && !data.SpanningTreePortfastEdge.IsUnknown() {
		if data.SpanningTreePortfastEdge.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-spanning-tree:spanning-tree.portfast.edge", map[string]string{})
		}
	}
	if !data.IpArpInspectionTrust.IsNull() && !data.IpArpInspectionTrust.IsUnknown() {
		if data.IpArpInspectionTrust.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.arp.inspection.trust", map[string]string{})
		}
	}
	if !data.IpArpInspectionLimitRate.IsNull() && !data.IpArpInspectionLimitRate.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.arp.inspection.limit.rate", strconv.FormatInt(data.IpArpInspectionLimitRate.ValueInt64(), 10))
	}
	if !data.IpDhcpSnoopingTrust.IsNull() && !data.IpDhcpSnoopingTrust.IsUnknown() {
		if data.IpDhcpSnoopingTrust.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.dhcp.Cisco-IOS-XE-dhcp:snooping.trust", map[string]string{})
		}
	}
	if !data.Speed100.IsNull() && !data.Speed100.IsUnknown() {
		if data.Speed100.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-ethernet:speed.value-100", map[string]string{})
		}
	}
	if !data.Speed1000.IsNull() && !data.Speed1000.IsUnknown() {
		if data.Speed1000.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-ethernet:speed.value-1000", map[string]string{})
		}
	}
	if !data.Speed2500.IsNull() && !data.Speed2500.IsUnknown() {
		if data.Speed2500.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-ethernet:speed.value-2500", map[string]string{})
		}
	}
	if !data.Speed5000.IsNull() && !data.Speed5000.IsUnknown() {
		if data.Speed5000.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-ethernet:speed.value-5000", map[string]string{})
		}
	}
	if !data.Speed10000.IsNull() && !data.Speed10000.IsUnknown() {
		if data.Speed10000.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-ethernet:speed.value-10000", map[string]string{})
		}
	}
	if !data.Speed25000.IsNull() && !data.Speed25000.IsUnknown() {
		if data.Speed25000.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-ethernet:speed.value-25000", map[string]string{})
		}
	}
	if !data.Speed40000.IsNull() && !data.Speed40000.IsUnknown() {
		if data.Speed40000.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-ethernet:speed.value-40000", map[string]string{})
		}
	}
	if !data.Speed100000.IsNull() && !data.Speed100000.IsUnknown() {
		if data.Speed100000.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-ethernet:speed.value-100000", map[string]string{})
		}
	}
	if !data.NegotiationAuto.IsNull() && !data.NegotiationAuto.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-ethernet:negotiation.auto", data.NegotiationAuto.ValueBool())
	}
	if !data.SpeedNonegotiate.IsNull() && !data.SpeedNonegotiate.IsUnknown() {
		if data.SpeedNonegotiate.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-ethernet:speed.nonegotiate", map[string]string{})
		}
	}
	if !data.AuthenticationHostMode.IsNull() && !data.AuthenticationHostMode.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-sanet:authentication.host-mode", data.AuthenticationHostMode.ValueString())
	}
	if !data.AuthenticationOrderDot1x.IsNull() && !data.AuthenticationOrderDot1x.IsUnknown() {
		if data.AuthenticationOrderDot1x.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-sanet:authentication.order-config.dot1x-config", map[string]string{})
		}
	}
	if !data.AuthenticationOrderDot1xMab.IsNull() && !data.AuthenticationOrderDot1xMab.IsUnknown() {
		if data.AuthenticationOrderDot1xMab.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-sanet:authentication.order-config.dot1x-config.mab", map[string]string{})
		}
	}
	if !data.AuthenticationOrderDot1xWebauth.IsNull() && !data.AuthenticationOrderDot1xWebauth.IsUnknown() {
		if data.AuthenticationOrderDot1xWebauth.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-sanet:authentication.order-config.dot1x-config.webauth", map[string]string{})
		}
	}
	if !data.AuthenticationOrderMab.IsNull() && !data.AuthenticationOrderMab.IsUnknown() {
		if data.AuthenticationOrderMab.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-sanet:authentication.order-config.mab-config", map[string]string{})
		}
	}
	if !data.AuthenticationOrderMabDot1x.IsNull() && !data.AuthenticationOrderMabDot1x.IsUnknown() {
		if data.AuthenticationOrderMabDot1x.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-sanet:authentication.order-config.mab-config.dot1x", map[string]string{})
		}
	}
	if !data.AuthenticationOrderMabWebauth.IsNull() && !data.AuthenticationOrderMabWebauth.IsUnknown() {
		if data.AuthenticationOrderMabWebauth.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-sanet:authentication.order-config.mab-config.webauth", map[string]string{})
		}
	}
	if !data.AuthenticationOrderWebauth.IsNull() && !data.AuthenticationOrderWebauth.IsUnknown() {
		if data.AuthenticationOrderWebauth.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-sanet:authentication.order-config.webauth-config", map[string]string{})
		}
	}
	if !data.AuthenticationPriorityDot1x.IsNull() && !data.AuthenticationPriorityDot1x.IsUnknown() {
		if data.AuthenticationPriorityDot1x.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-sanet:authentication.priority-config.dot1x-config", map[string]string{})
		}
	}
	if !data.AuthenticationPriorityDot1xMab.IsNull() && !data.AuthenticationPriorityDot1xMab.IsUnknown() {
		if data.AuthenticationPriorityDot1xMab.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-sanet:authentication.priority-config.dot1x-config.mab", map[string]string{})
		}
	}
	if !data.AuthenticationPriorityDot1xWebauth.IsNull() && !data.AuthenticationPriorityDot1xWebauth.IsUnknown() {
		if data.AuthenticationPriorityDot1xWebauth.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-sanet:authentication.priority-config.dot1x-config.webauth", map[string]string{})
		}
	}
	if !data.AuthenticationPriorityMab.IsNull() && !data.AuthenticationPriorityMab.IsUnknown() {
		if data.AuthenticationPriorityMab.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-sanet:authentication.priority-config.mab-config", map[string]string{})
		}
	}
	if !data.AuthenticationPriorityMabDot1x.IsNull() && !data.AuthenticationPriorityMabDot1x.IsUnknown() {
		if data.AuthenticationPriorityMabDot1x.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-sanet:authentication.priority-config.mab-config.dot1x", map[string]string{})
		}
	}
	if !data.AuthenticationPriorityMabWebauth.IsNull() && !data.AuthenticationPriorityMabWebauth.IsUnknown() {
		if data.AuthenticationPriorityMabWebauth.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-sanet:authentication.priority-config.mab-config.webauth", map[string]string{})
		}
	}
	if !data.AuthenticationPriorityWebauth.IsNull() && !data.AuthenticationPriorityWebauth.IsUnknown() {
		if data.AuthenticationPriorityWebauth.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-sanet:authentication.priority-config.webauth-config", map[string]string{})
		}
	}
	if !data.AuthenticationPortControl.IsNull() && !data.AuthenticationPortControl.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-sanet:authentication.port-control", data.AuthenticationPortControl.ValueString())
	}
	if !data.AuthenticationPeriodic.IsNull() && !data.AuthenticationPeriodic.IsUnknown() {
		if data.AuthenticationPeriodic.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-sanet:authentication.periodic", map[string]string{})
		}
	}
	if !data.AuthenticationTimerReauthenticate.IsNull() && !data.AuthenticationTimerReauthenticate.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-sanet:authentication.timer.reauthenticate.value-config", strconv.FormatInt(data.AuthenticationTimerReauthenticate.ValueInt64(), 10))
	}
	if !data.AuthenticationTimerReauthenticateServer.IsNull() && !data.AuthenticationTimerReauthenticateServer.IsUnknown() {
		if data.AuthenticationTimerReauthenticateServer.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-sanet:authentication.timer.reauthenticate.server-config", map[string]string{})
		}
	}
	if !data.Mab.IsNull() && !data.Mab.IsUnknown() {
		if data.Mab.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-sanet:mab", map[string]string{})
		}
	}
	if !data.MabEap.IsNull() && !data.MabEap.IsUnknown() {
		if data.MabEap.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-sanet:mab.eap", map[string]string{})
		}
	}
	if !data.Dot1xPae.IsNull() && !data.Dot1xPae.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-dot1x:dot1x.pae", data.Dot1xPae.ValueString())
	}
	if !data.Dot1xTimeoutAuthPeriod.IsNull() && !data.Dot1xTimeoutAuthPeriod.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-dot1x:dot1x.timeout.auth-period", strconv.FormatInt(data.Dot1xTimeoutAuthPeriod.ValueInt64(), 10))
	}
	if !data.Dot1xTimeoutHeldPeriod.IsNull() && !data.Dot1xTimeoutHeldPeriod.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-dot1x:dot1x.timeout.held-period", strconv.FormatInt(data.Dot1xTimeoutHeldPeriod.ValueInt64(), 10))
	}
	if !data.Dot1xTimeoutQuietPeriod.IsNull() && !data.Dot1xTimeoutQuietPeriod.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-dot1x:dot1x.timeout.quiet-period", strconv.FormatInt(data.Dot1xTimeoutQuietPeriod.ValueInt64(), 10))
	}
	if !data.Dot1xTimeoutRatelimitPeriod.IsNull() && !data.Dot1xTimeoutRatelimitPeriod.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-dot1x:dot1x.timeout.ratelimit-period", strconv.FormatInt(data.Dot1xTimeoutRatelimitPeriod.ValueInt64(), 10))
	}
	if !data.Dot1xTimeoutServerTimeout.IsNull() && !data.Dot1xTimeoutServerTimeout.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-dot1x:dot1x.timeout.server-timeout", strconv.FormatInt(data.Dot1xTimeoutServerTimeout.ValueInt64(), 10))
	}
	if !data.Dot1xTimeoutStartPeriod.IsNull() && !data.Dot1xTimeoutStartPeriod.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-dot1x:dot1x.timeout.start-period", strconv.FormatInt(data.Dot1xTimeoutStartPeriod.ValueInt64(), 10))
	}
	if !data.Dot1xTimeoutSuppTimeout.IsNull() && !data.Dot1xTimeoutSuppTimeout.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-dot1x:dot1x.timeout.supp-timeout", strconv.FormatInt(data.Dot1xTimeoutSuppTimeout.ValueInt64(), 10))
	}
	if !data.Dot1xTimeoutTxPeriod.IsNull() && !data.Dot1xTimeoutTxPeriod.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-dot1x:dot1x.timeout.tx-period", strconv.FormatInt(data.Dot1xTimeoutTxPeriod.ValueInt64(), 10))
	}
	if !data.Dot1xMaxReq.IsNull() && !data.Dot1xMaxReq.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-dot1x:dot1x.max-req", strconv.FormatInt(data.Dot1xMaxReq.ValueInt64(), 10))
	}
	if !data.Dot1xMaxReauthReq.IsNull() && !data.Dot1xMaxReauthReq.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-dot1x:dot1x.max-reauth-req", strconv.FormatInt(data.Dot1xMaxReauthReq.ValueInt64(), 10))
	}
	if !data.ServicePolicyInput.IsNull() && !data.ServicePolicyInput.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-policy:service-policy.input", data.ServicePolicyInput.ValueString())
	}
	if !data.ServicePolicyOutput.IsNull() && !data.ServicePolicyOutput.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-policy:service-policy.output", data.ServicePolicyOutput.ValueString())
	}
	if !data.LoadInterval.IsNull() && !data.LoadInterval.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"load-interval", strconv.FormatInt(data.LoadInterval.ValueInt64(), 10))
	}
	if !data.SnmpTrapLinkStatus.IsNull() && !data.SnmpTrapLinkStatus.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-snmp:snmp.trap.link-status", data.SnmpTrapLinkStatus.ValueBool())
	}
	if !data.LoggingEventLinkStatusEnable.IsNull() && !data.LoggingEventLinkStatusEnable.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"logging.event.link-status-enable", data.LoggingEventLinkStatusEnable.ValueBool())
	}
	if !data.IpNbarProtocolDiscovery.IsNull() && !data.IpNbarProtocolDiscovery.IsUnknown() {
		if data.IpNbarProtocolDiscovery.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-nbar:nbar.protocol-discovery", map[string]string{})
		}
	}
	if !data.DeviceTracking.IsNull() && !data.DeviceTracking.IsUnknown() {
		if data.DeviceTracking.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-switch:device-tracking", map[string]string{})
		}
	}
	if !data.CdpEnable.IsNull() && !data.CdpEnable.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-cdp:cdp.enable", data.CdpEnable.ValueBool())
	}
	if !data.CdpTlvApp.IsNull() && !data.CdpTlvApp.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-cdp:cdp.tlv.default-wrp.app", data.CdpTlvApp.ValueBool())
	}
	if !data.CdpTlvLocation.IsNull() && !data.CdpTlvLocation.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-cdp:cdp.tlv.location-config", data.CdpTlvLocation.ValueBool())
	}
	if !data.CdpTlvServerLocation.IsNull() && !data.CdpTlvServerLocation.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-cdp:cdp.tlv.server-location-config", data.CdpTlvServerLocation.ValueBool())
	}
	if !data.IpNatInside.IsNull() && !data.IpNatInside.IsUnknown() {
		if data.IpNatInside.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-nat:nat.inside", map[string]string{})
		}
	}
	if !data.IpNatOutside.IsNull() && !data.IpNatOutside.IsUnknown() {
		if data.IpNatOutside.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-nat:nat.outside", map[string]string{})
		}
	}
	if len(data.HelperAddresses) > 0 {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.helper-address", []interface{}{})
		for index, item := range data.HelperAddresses {
			if !item.Address.IsNull() && !item.Address.IsUnknown() {
				body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.helper-address"+"."+strconv.Itoa(index)+"."+"address", item.Address.ValueString())
			}
			if !item.Global.IsNull() && !item.Global.IsUnknown() {
				if item.Global.ValueBool() {
					body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.helper-address"+"."+strconv.Itoa(index)+"."+"global", map[string]string{})
				}
			}
			if !item.Vrf.IsNull() && !item.Vrf.IsUnknown() {
				body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.helper-address"+"."+strconv.Itoa(index)+"."+"vrf", item.Vrf.ValueString())
			}
		}
	}
	if len(data.SourceTemplate) > 0 {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"source.template.template-name", []interface{}{})
		for index, item := range data.SourceTemplate {
			if !item.TemplateName.IsNull() && !item.TemplateName.IsUnknown() {
				body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"source.template.template-name"+"."+strconv.Itoa(index)+"."+"template-name", item.TemplateName.ValueString())
			}
			if !item.Merge.IsNull() && !item.Merge.IsUnknown() {
				if item.Merge.ValueBool() {
					body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"source.template.template-name"+"."+strconv.Itoa(index)+"."+"merge", map[string]string{})
				}
			}
		}
	}
	if len(data.Ipv6LinkLocalAddresses) > 0 {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ipv6.address.link-local-address", []interface{}{})
		for index, item := range data.Ipv6LinkLocalAddresses {
			if !item.Address.IsNull() && !item.Address.IsUnknown() {
				body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ipv6.address.link-local-address"+"."+strconv.Itoa(index)+"."+"address", item.Address.ValueString())
			}
			if !item.LinkLocal.IsNull() && !item.LinkLocal.IsUnknown() {
				if item.LinkLocal.ValueBool() {
					body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ipv6.address.link-local-address"+"."+strconv.Itoa(index)+"."+"link-local", map[string]string{})
				}
			}
		}
	}
	if len(data.Ipv6Addresses) > 0 {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ipv6.address.prefix-list", []interface{}{})
		for index, item := range data.Ipv6Addresses {
			if !item.Prefix.IsNull() && !item.Prefix.IsUnknown() {
				body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ipv6.address.prefix-list"+"."+strconv.Itoa(index)+"."+"prefix", item.Prefix.ValueString())
			}
			if !item.Eui64.IsNull() && !item.Eui64.IsUnknown() {
				if item.Eui64.ValueBool() {
					body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ipv6.address.prefix-list"+"."+strconv.Itoa(index)+"."+"eui-64", map[string]string{})
				}
			}
		}
	}
	if len(data.Ipv6FlowMonitors) > 0 {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ipv6.Cisco-IOS-XE-flow:flow.monitor-new", []interface{}{})
		for index, item := range data.Ipv6FlowMonitors {
			if !item.Name.IsNull() && !item.Name.IsUnknown() {
				body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ipv6.Cisco-IOS-XE-flow:flow.monitor-new"+"."+strconv.Itoa(index)+"."+"name", item.Name.ValueString())
			}
			if !item.Direction.IsNull() && !item.Direction.IsUnknown() {
				body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ipv6.Cisco-IOS-XE-flow:flow.monitor-new"+"."+strconv.Itoa(index)+"."+"direction", item.Direction.ValueString())
			}
		}
	}
	if len(data.IpFlowMonitors) > 0 {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-flow:flow.monitor-new", []interface{}{})
		for index, item := range data.IpFlowMonitors {
			if !item.Name.IsNull() && !item.Name.IsUnknown() {
				body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-flow:flow.monitor-new"+"."+strconv.Itoa(index)+"."+"name", item.Name.ValueString())
			}
			if !item.Direction.IsNull() && !item.Direction.IsUnknown() {
				body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-flow:flow.monitor-new"+"."+strconv.Itoa(index)+"."+"direction", item.Direction.ValueString())
			}
		}
	}
	if len(data.DeviceTrackingAttachedPolicies) > 0 {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-switch:device-tracking.attached-policies", []interface{}{})
		for index, item := range data.DeviceTrackingAttachedPolicies {
			if !item.Name.IsNull() && !item.Name.IsUnknown() {
				body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-switch:device-tracking.attached-policies"+"."+strconv.Itoa(index)+"."+"attach-policy", item.Name.ValueString())
			}
		}
	}
	return body
}

// End of section. //template:end toBody

// Section below is generated&owned by "gen/generator.go". //template:begin updateFromBody

func (data *InterfaceEthernet) updateFromBody(ctx context.Context, res gjson.Result) {
	prefix := helpers.LastElement(data.getPath()) + "."
	if res.Get(helpers.LastElement(data.getPath())).IsArray() {
		prefix += "0."
	}
	if value := res.Get(prefix + "name"); value.Exists() && !data.Name.IsNull() {
		data.Name = types.StringValue(value.String())
	} else {
		data.Name = types.StringNull()
	}
	if value := res.Get(prefix + "media-type"); value.Exists() && !data.MediaType.IsNull() {
		data.MediaType = types.StringValue(value.String())
	} else {
		data.MediaType = types.StringNull()
	}
	if value := res.Get(prefix + "mtu"); value.Exists() && !data.Mtu.IsNull() {
		data.Mtu = types.Int64Value(value.Int())
	} else {
		data.Mtu = types.Int64Null()
	}
	if value := res.Get(prefix + "bandwidth.kilobits"); value.Exists() && !data.Bandwidth.IsNull() {
		data.Bandwidth = types.Int64Value(value.Int())
	} else {
		data.Bandwidth = types.Int64Null()
	}
	if value := res.Get(prefix + "switchport-conf.switchport"); !data.Switchport.IsNull() {
		if value.Exists() {
			data.Switchport = types.BoolValue(value.Bool())
		}
	} else {
		data.Switchport = types.BoolNull()
	}
	if value := res.Get(prefix + "description"); value.Exists() && !data.Description.IsNull() {
		data.Description = types.StringValue(value.String())
	} else {
		data.Description = types.StringNull()
	}
	if value := res.Get(prefix + "shutdown"); !data.Shutdown.IsNull() {
		if value.Exists() {
			data.Shutdown = types.BoolValue(true)
		} else {
			data.Shutdown = types.BoolValue(false)
		}
	} else {
		data.Shutdown = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.proxy-arp"); !data.IpProxyArp.IsNull() {
		if value.Exists() {
			data.IpProxyArp = types.BoolValue(value.Bool())
		}
	} else {
		data.IpProxyArp = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.redirects"); !data.IpRedirects.IsNull() {
		if value.Exists() {
			data.IpRedirects = types.BoolValue(value.Bool())
		}
	} else {
		data.IpRedirects = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-icmp:unreachables"); !data.IpUnreachables.IsNull() {
		if value.Exists() {
			data.IpUnreachables = types.BoolValue(value.Bool())
		}
	} else {
		data.IpUnreachables = types.BoolNull()
	}
	if value := res.Get(prefix + "vrf.forwarding"); value.Exists() && !data.VrfForwarding.IsNull() {
		data.VrfForwarding = types.StringValue(value.String())
	} else {
		data.VrfForwarding = types.StringNull()
	}
	if value := res.Get(prefix + "ip.address.primary.address"); value.Exists() && !data.Ipv4Address.IsNull() {
		data.Ipv4Address = types.StringValue(value.String())
	} else {
		data.Ipv4Address = types.StringNull()
	}
	if value := res.Get(prefix + "ip.address.primary.mask"); value.Exists() && !data.Ipv4AddressMask.IsNull() {
		data.Ipv4AddressMask = types.StringValue(value.String())
	} else {
		data.Ipv4AddressMask = types.StringNull()
	}
	if value := res.Get(prefix + "ip.unnumbered"); value.Exists() && !data.Unnumbered.IsNull() {
		data.Unnumbered = types.StringValue(value.String())
	} else {
		data.Unnumbered = types.StringNull()
	}
	if value := res.Get(prefix + "encapsulation.dot1Q.vlan-id"); value.Exists() && !data.EncapsulationDot1qVlanId.IsNull() {
		data.EncapsulationDot1qVlanId = types.Int64Value(value.Int())
	} else {
		data.EncapsulationDot1qVlanId = types.Int64Null()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:channel-group.number"); value.Exists() && !data.ChannelGroupNumber.IsNull() {
		data.ChannelGroupNumber = types.Int64Value(value.Int())
	} else {
		data.ChannelGroupNumber = types.Int64Null()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:channel-group.mode"); value.Exists() && !data.ChannelGroupMode.IsNull() {
		data.ChannelGroupMode = types.StringValue(value.String())
	} else {
		data.ChannelGroupMode = types.StringNull()
	}
	if value := res.Get(prefix + "ip.dhcp.Cisco-IOS-XE-dhcp:relay.source-interface"); value.Exists() && !data.IpDhcpRelaySourceInterface.IsNull() {
		data.IpDhcpRelaySourceInterface = types.StringValue(value.String())
	} else {
		data.IpDhcpRelaySourceInterface = types.StringNull()
	}
	if value := res.Get(prefix + "ip.access-group.in.acl.in"); !data.IpAccessGroupInEnable.IsNull() {
		if value.Exists() {
			data.IpAccessGroupInEnable = types.BoolValue(true)
		} else {
			data.IpAccessGroupInEnable = types.BoolValue(false)
		}
	} else {
		data.IpAccessGroupInEnable = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.access-group.in.acl.acl-name"); value.Exists() && !data.IpAccessGroupIn.IsNull() {
		data.IpAccessGroupIn = types.StringValue(value.String())
	} else {
		data.IpAccessGroupIn = types.StringNull()
	}
	if value := res.Get(prefix + "ip.access-group.out.acl.out"); !data.IpAccessGroupOutEnable.IsNull() {
		if value.Exists() {
			data.IpAccessGroupOutEnable = types.BoolValue(true)
		} else {
			data.IpAccessGroupOutEnable = types.BoolValue(false)
		}
	} else {
		data.IpAccessGroupOutEnable = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.access-group.out.acl.acl-name"); value.Exists() && !data.IpAccessGroupOut.IsNull() {
		data.IpAccessGroupOut = types.StringValue(value.String())
	} else {
		data.IpAccessGroupOut = types.StringNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-spanning-tree:spanning-tree.guard"); value.Exists() && !data.SpanningTreeGuard.IsNull() {
		data.SpanningTreeGuard = types.StringValue(value.String())
	} else {
		data.SpanningTreeGuard = types.StringNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.classify"); !data.AutoQosClassify.IsNull() {
		if value.Exists() {
			data.AutoQosClassify = types.BoolValue(true)
		} else {
			data.AutoQosClassify = types.BoolValue(false)
		}
	} else {
		data.AutoQosClassify = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.classify.police"); !data.AutoQosClassifyPolice.IsNull() {
		if value.Exists() {
			data.AutoQosClassifyPolice = types.BoolValue(true)
		} else {
			data.AutoQosClassifyPolice = types.BoolValue(false)
		}
	} else {
		data.AutoQosClassifyPolice = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.trust"); !data.AutoQosTrust.IsNull() {
		if value.Exists() {
			data.AutoQosTrust = types.BoolValue(true)
		} else {
			data.AutoQosTrust = types.BoolValue(false)
		}
	} else {
		data.AutoQosTrust = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.trust.cos"); !data.AutoQosTrustCos.IsNull() {
		if value.Exists() {
			data.AutoQosTrustCos = types.BoolValue(true)
		} else {
			data.AutoQosTrustCos = types.BoolValue(false)
		}
	} else {
		data.AutoQosTrustCos = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.trust.dscp"); !data.AutoQosTrustDscp.IsNull() {
		if value.Exists() {
			data.AutoQosTrustDscp = types.BoolValue(true)
		} else {
			data.AutoQosTrustDscp = types.BoolValue(false)
		}
	} else {
		data.AutoQosTrustDscp = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.video.cts"); !data.AutoQosVideoCts.IsNull() {
		if value.Exists() {
			data.AutoQosVideoCts = types.BoolValue(true)
		} else {
			data.AutoQosVideoCts = types.BoolValue(false)
		}
	} else {
		data.AutoQosVideoCts = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.video.ip-camera"); !data.AutoQosVideoIpCamera.IsNull() {
		if value.Exists() {
			data.AutoQosVideoIpCamera = types.BoolValue(true)
		} else {
			data.AutoQosVideoIpCamera = types.BoolValue(false)
		}
	} else {
		data.AutoQosVideoIpCamera = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.video.media-player"); !data.AutoQosVideoMediaPlayer.IsNull() {
		if value.Exists() {
			data.AutoQosVideoMediaPlayer = types.BoolValue(true)
		} else {
			data.AutoQosVideoMediaPlayer = types.BoolValue(false)
		}
	} else {
		data.AutoQosVideoMediaPlayer = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.voip"); !data.AutoQosVoip.IsNull() {
		if value.Exists() {
			data.AutoQosVoip = types.BoolValue(true)
		} else {
			data.AutoQosVoip = types.BoolValue(false)
		}
	} else {
		data.AutoQosVoip = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.voip.cisco-phone"); !data.AutoQosVoipCiscoPhone.IsNull() {
		if value.Exists() {
			data.AutoQosVoipCiscoPhone = types.BoolValue(true)
		} else {
			data.AutoQosVoipCiscoPhone = types.BoolValue(false)
		}
	} else {
		data.AutoQosVoipCiscoPhone = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.voip.cisco-softphone"); !data.AutoQosVoipCiscoSoftphone.IsNull() {
		if value.Exists() {
			data.AutoQosVoipCiscoSoftphone = types.BoolValue(true)
		} else {
			data.AutoQosVoipCiscoSoftphone = types.BoolValue(false)
		}
	} else {
		data.AutoQosVoipCiscoSoftphone = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.voip.trust"); !data.AutoQosVoipTrust.IsNull() {
		if value.Exists() {
			data.AutoQosVoipTrust = types.BoolValue(true)
		} else {
			data.AutoQosVoipTrust = types.BoolValue(false)
		}
	} else {
		data.AutoQosVoipTrust = types.BoolNull()
	}
	if value := res.Get(prefix + "trust.device"); value.Exists() && !data.TrustDevice.IsNull() {
		data.TrustDevice = types.StringValue(value.String())
	} else {
		data.TrustDevice = types.StringNull()
	}
	for i := range data.HelperAddresses {
		keys := [...]string{"address"}
		keyValues := [...]string{data.HelperAddresses[i].Address.ValueString()}

		var r gjson.Result
		res.Get(prefix + "ip.helper-address").ForEach(
			func(_, v gjson.Result) bool {
				found := false
				for ik := range keys {
					if v.Get(keys[ik]).String() == keyValues[ik] {
						found = true
						continue
					}
					found = false
					break
				}
				if found {
					r = v
					return false
				}
				return true
			},
		)
		if value := r.Get("address"); value.Exists() && !data.HelperAddresses[i].Address.IsNull() {
			data.HelperAddresses[i].Address = types.StringValue(value.String())
		} else {
			data.HelperAddresses[i].Address = types.StringNull()
		}
		if value := r.Get("global"); !data.HelperAddresses[i].Global.IsNull() {
			if value.Exists() {
				data.HelperAddresses[i].Global = types.BoolValue(true)
			} else {
				data.HelperAddresses[i].Global = types.BoolValue(false)
			}
		} else {
			data.HelperAddresses[i].Global = types.BoolNull()
		}
		if value := r.Get("vrf"); value.Exists() && !data.HelperAddresses[i].Vrf.IsNull() {
			data.HelperAddresses[i].Vrf = types.StringValue(value.String())
		} else {
			data.HelperAddresses[i].Vrf = types.StringNull()
		}
	}
	for i := range data.SourceTemplate {
		keys := [...]string{"template-name"}
		keyValues := [...]string{data.SourceTemplate[i].TemplateName.ValueString()}

		var r gjson.Result
		res.Get(prefix + "source.template.template-name").ForEach(
			func(_, v gjson.Result) bool {
				found := false
				for ik := range keys {
					if v.Get(keys[ik]).String() == keyValues[ik] {
						found = true
						continue
					}
					found = false
					break
				}
				if found {
					r = v
					return false
				}
				return true
			},
		)
		if value := r.Get("template-name"); value.Exists() && !data.SourceTemplate[i].TemplateName.IsNull() {
			data.SourceTemplate[i].TemplateName = types.StringValue(value.String())
		} else {
			data.SourceTemplate[i].TemplateName = types.StringNull()
		}
		if value := r.Get("merge"); !data.SourceTemplate[i].Merge.IsNull() {
			if value.Exists() {
				data.SourceTemplate[i].Merge = types.BoolValue(true)
			} else {
				data.SourceTemplate[i].Merge = types.BoolValue(false)
			}
		} else {
			data.SourceTemplate[i].Merge = types.BoolNull()
		}
	}
	if value := res.Get(prefix + "bfd.Cisco-IOS-XE-bfd:template"); value.Exists() && !data.BfdTemplate.IsNull() {
		data.BfdTemplate = types.StringValue(value.String())
	} else {
		data.BfdTemplate = types.StringNull()
	}
	if value := res.Get(prefix + "bfd.Cisco-IOS-XE-bfd:enable"); !data.BfdEnable.IsNull() {
		if value.Exists() {
			data.BfdEnable = types.BoolValue(value.Bool())
		}
	} else {
		data.BfdEnable = types.BoolNull()
	}
	if value := res.Get(prefix + "bfd.Cisco-IOS-XE-bfd:local-address"); value.Exists() && !data.BfdLocalAddress.IsNull() {
		data.BfdLocalAddress = types.StringValue(value.String())
	} else {
		data.BfdLocalAddress = types.StringNull()
	}
	if value := res.Get(prefix + "bfd.Cisco-IOS-XE-bfd:interval-interface.msecs"); value.Exists() && !data.BfdInterval.IsNull() {
		data.BfdInterval = types.Int64Value(value.Int())
	} else {
		data.BfdInterval = types.Int64Null()
	}
	if value := res.Get(prefix + "bfd.Cisco-IOS-XE-bfd:interval-interface.min_rx"); value.Exists() && !data.BfdIntervalMinRx.IsNull() {
		data.BfdIntervalMinRx = types.Int64Value(value.Int())
	} else {
		data.BfdIntervalMinRx = types.Int64Null()
	}
	if value := res.Get(prefix + "bfd.Cisco-IOS-XE-bfd:interval-interface.multiplier"); value.Exists() && !data.BfdIntervalMultiplier.IsNull() {
		data.BfdIntervalMultiplier = types.Int64Value(value.Int())
	} else {
		data.BfdIntervalMultiplier = types.Int64Null()
	}
	if value := res.Get(prefix + "bfd.Cisco-IOS-XE-bfd:echo"); !data.BfdEcho.IsNull() {
		if value.Exists() {
			data.BfdEcho = types.BoolValue(value.Bool())
		}
	} else {
		data.BfdEcho = types.BoolNull()
	}
	if value := res.Get(prefix + "ipv6.enable"); !data.Ipv6Enable.IsNull() {
		if value.Exists() {
			data.Ipv6Enable = types.BoolValue(true)
		} else {
			data.Ipv6Enable = types.BoolValue(false)
		}
	} else {
		data.Ipv6Enable = types.BoolNull()
	}
	if value := res.Get(prefix + "ipv6.mtu"); value.Exists() && !data.Ipv6Mtu.IsNull() {
		data.Ipv6Mtu = types.Int64Value(value.Int())
	} else {
		data.Ipv6Mtu = types.Int64Null()
	}
	if value := res.Get(prefix + "ipv6.nd.Cisco-IOS-XE-nd:ra.suppress.all"); !data.Ipv6NdRaSuppressAll.IsNull() {
		if value.Exists() {
			data.Ipv6NdRaSuppressAll = types.BoolValue(true)
		} else {
			data.Ipv6NdRaSuppressAll = types.BoolValue(false)
		}
	} else {
		data.Ipv6NdRaSuppressAll = types.BoolNull()
	}
	if value := res.Get(prefix + "ipv6.address.autoconfig.default"); !data.Ipv6AddressAutoconfigDefault.IsNull() {
		if value.Exists() {
			data.Ipv6AddressAutoconfigDefault = types.BoolValue(true)
		} else {
			data.Ipv6AddressAutoconfigDefault = types.BoolValue(false)
		}
	} else {
		data.Ipv6AddressAutoconfigDefault = types.BoolNull()
	}
	if value := res.Get(prefix + "ipv6.address.dhcp"); !data.Ipv6AddressDhcp.IsNull() {
		if value.Exists() {
			data.Ipv6AddressDhcp = types.BoolValue(true)
		} else {
			data.Ipv6AddressDhcp = types.BoolValue(false)
		}
	} else {
		data.Ipv6AddressDhcp = types.BoolNull()
	}
	for i := range data.Ipv6LinkLocalAddresses {
		keys := [...]string{"address"}
		keyValues := [...]string{data.Ipv6LinkLocalAddresses[i].Address.ValueString()}

		var r gjson.Result
		res.Get(prefix + "ipv6.address.link-local-address").ForEach(
			func(_, v gjson.Result) bool {
				found := false
				for ik := range keys {
					if v.Get(keys[ik]).String() == keyValues[ik] {
						found = true
						continue
					}
					found = false
					break
				}
				if found {
					r = v
					return false
				}
				return true
			},
		)
		if value := r.Get("address"); value.Exists() && !data.Ipv6LinkLocalAddresses[i].Address.IsNull() {
			data.Ipv6LinkLocalAddresses[i].Address = types.StringValue(value.String())
		} else {
			data.Ipv6LinkLocalAddresses[i].Address = types.StringNull()
		}
		if value := r.Get("link-local"); !data.Ipv6LinkLocalAddresses[i].LinkLocal.IsNull() {
			if value.Exists() {
				data.Ipv6LinkLocalAddresses[i].LinkLocal = types.BoolValue(true)
			} else {
				data.Ipv6LinkLocalAddresses[i].LinkLocal = types.BoolValue(false)
			}
		} else {
			data.Ipv6LinkLocalAddresses[i].LinkLocal = types.BoolNull()
		}
	}
	for i := range data.Ipv6Addresses {
		keys := [...]string{"prefix"}
		keyValues := [...]string{data.Ipv6Addresses[i].Prefix.ValueString()}

		var r gjson.Result
		res.Get(prefix + "ipv6.address.prefix-list").ForEach(
			func(_, v gjson.Result) bool {
				found := false
				for ik := range keys {
					if v.Get(keys[ik]).String() == keyValues[ik] {
						found = true
						continue
					}
					found = false
					break
				}
				if found {
					r = v
					return false
				}
				return true
			},
		)
		if value := r.Get("prefix"); value.Exists() && !data.Ipv6Addresses[i].Prefix.IsNull() {
			data.Ipv6Addresses[i].Prefix = types.StringValue(value.String())
		} else {
			data.Ipv6Addresses[i].Prefix = types.StringNull()
		}
		if value := r.Get("eui-64"); !data.Ipv6Addresses[i].Eui64.IsNull() {
			if value.Exists() {
				data.Ipv6Addresses[i].Eui64 = types.BoolValue(true)
			} else {
				data.Ipv6Addresses[i].Eui64 = types.BoolValue(false)
			}
		} else {
			data.Ipv6Addresses[i].Eui64 = types.BoolNull()
		}
	}
	for i := range data.Ipv6FlowMonitors {
		keys := [...]string{"name", "direction"}
		keyValues := [...]string{data.Ipv6FlowMonitors[i].Name.ValueString(), data.Ipv6FlowMonitors[i].Direction.ValueString()}

		var r gjson.Result
		res.Get(prefix + "ipv6.Cisco-IOS-XE-flow:flow.monitor-new").ForEach(
			func(_, v gjson.Result) bool {
				found := false
				for ik := range keys {
					if v.Get(keys[ik]).String() == keyValues[ik] {
						found = true
						continue
					}
					found = false
					break
				}
				if found {
					r = v
					return false
				}
				return true
			},
		)
		if value := r.Get("name"); value.Exists() && !data.Ipv6FlowMonitors[i].Name.IsNull() {
			data.Ipv6FlowMonitors[i].Name = types.StringValue(value.String())
		} else {
			data.Ipv6FlowMonitors[i].Name = types.StringNull()
		}
		if value := r.Get("direction"); value.Exists() && !data.Ipv6FlowMonitors[i].Direction.IsNull() {
			data.Ipv6FlowMonitors[i].Direction = types.StringValue(value.String())
		} else {
			data.Ipv6FlowMonitors[i].Direction = types.StringNull()
		}
	}
	if value := res.Get(prefix + "arp.timeout"); value.Exists() && !data.ArpTimeout.IsNull() {
		data.ArpTimeout = types.Int64Value(value.Int())
	} else {
		data.ArpTimeout = types.Int64Null()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-spanning-tree:spanning-tree.link-type"); value.Exists() && !data.SpanningTreeLinkType.IsNull() {
		data.SpanningTreeLinkType = types.StringValue(value.String())
	} else {
		data.SpanningTreeLinkType = types.StringNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-spanning-tree:spanning-tree.bpduguard.enable"); !data.BpduguardEnable.IsNull() {
		if value.Exists() {
			data.BpduguardEnable = types.BoolValue(true)
		} else {
			data.BpduguardEnable = types.BoolValue(false)
		}
	} else {
		data.BpduguardEnable = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-spanning-tree:spanning-tree.bpduguard.disable"); !data.BpduguardDisable.IsNull() {
		if value.Exists() {
			data.BpduguardDisable = types.BoolValue(true)
		} else {
			data.BpduguardDisable = types.BoolValue(false)
		}
	} else {
		data.BpduguardDisable = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-spanning-tree:spanning-tree.portfast"); !data.SpanningTreePortfast.IsNull() {
		if value.Exists() {
			data.SpanningTreePortfast = types.BoolValue(true)
		} else {
			data.SpanningTreePortfast = types.BoolValue(false)
		}
	} else {
		data.SpanningTreePortfast = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-spanning-tree:spanning-tree.portfast.disable"); !data.SpanningTreePortfastDisable.IsNull() {
		if value.Exists() {
			data.SpanningTreePortfastDisable = types.BoolValue(true)
		} else {
			data.SpanningTreePortfastDisable = types.BoolValue(false)
		}
	} else {
		data.SpanningTreePortfastDisable = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-spanning-tree:spanning-tree.portfast.trunk"); !data.SpanningTreePortfastTrunk.IsNull() {
		if value.Exists() {
			data.SpanningTreePortfastTrunk = types.BoolValue(true)
		} else {
			data.SpanningTreePortfastTrunk = types.BoolValue(false)
		}
	} else {
		data.SpanningTreePortfastTrunk = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-spanning-tree:spanning-tree.portfast.edge"); !data.SpanningTreePortfastEdge.IsNull() {
		if value.Exists() {
			data.SpanningTreePortfastEdge = types.BoolValue(true)
		} else {
			data.SpanningTreePortfastEdge = types.BoolValue(false)
		}
	} else {
		data.SpanningTreePortfastEdge = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.arp.inspection.trust"); !data.IpArpInspectionTrust.IsNull() {
		if value.Exists() {
			data.IpArpInspectionTrust = types.BoolValue(true)
		} else {
			data.IpArpInspectionTrust = types.BoolValue(false)
		}
	} else {
		data.IpArpInspectionTrust = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.arp.inspection.limit.rate"); value.Exists() && !data.IpArpInspectionLimitRate.IsNull() {
		data.IpArpInspectionLimitRate = types.Int64Value(value.Int())
	} else {
		data.IpArpInspectionLimitRate = types.Int64Null()
	}
	if value := res.Get(prefix + "ip.dhcp.Cisco-IOS-XE-dhcp:snooping.trust"); !data.IpDhcpSnoopingTrust.IsNull() {
		if value.Exists() {
			data.IpDhcpSnoopingTrust = types.BoolValue(true)
		} else {
			data.IpDhcpSnoopingTrust = types.BoolValue(false)
		}
	} else {
		data.IpDhcpSnoopingTrust = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-100"); !data.Speed100.IsNull() {
		if value.Exists() {
			data.Speed100 = types.BoolValue(true)
		} else {
			data.Speed100 = types.BoolValue(false)
		}
	} else {
		data.Speed100 = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-1000"); !data.Speed1000.IsNull() {
		if value.Exists() {
			data.Speed1000 = types.BoolValue(true)
		} else {
			data.Speed1000 = types.BoolValue(false)
		}
	} else {
		data.Speed1000 = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-2500"); !data.Speed2500.IsNull() {
		if value.Exists() {
			data.Speed2500 = types.BoolValue(true)
		} else {
			data.Speed2500 = types.BoolValue(false)
		}
	} else {
		data.Speed2500 = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-5000"); !data.Speed5000.IsNull() {
		if value.Exists() {
			data.Speed5000 = types.BoolValue(true)
		} else {
			data.Speed5000 = types.BoolValue(false)
		}
	} else {
		data.Speed5000 = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-10000"); !data.Speed10000.IsNull() {
		if value.Exists() {
			data.Speed10000 = types.BoolValue(true)
		} else {
			data.Speed10000 = types.BoolValue(false)
		}
	} else {
		data.Speed10000 = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-25000"); !data.Speed25000.IsNull() {
		if value.Exists() {
			data.Speed25000 = types.BoolValue(true)
		} else {
			data.Speed25000 = types.BoolValue(false)
		}
	} else {
		data.Speed25000 = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-40000"); !data.Speed40000.IsNull() {
		if value.Exists() {
			data.Speed40000 = types.BoolValue(true)
		} else {
			data.Speed40000 = types.BoolValue(false)
		}
	} else {
		data.Speed40000 = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-100000"); !data.Speed100000.IsNull() {
		if value.Exists() {
			data.Speed100000 = types.BoolValue(true)
		} else {
			data.Speed100000 = types.BoolValue(false)
		}
	} else {
		data.Speed100000 = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:negotiation.auto"); !data.NegotiationAuto.IsNull() {
		if value.Exists() {
			data.NegotiationAuto = types.BoolValue(value.Bool())
		}
	} else {
		data.NegotiationAuto = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.nonegotiate"); !data.SpeedNonegotiate.IsNull() {
		if value.Exists() {
			data.SpeedNonegotiate = types.BoolValue(true)
		} else {
			data.SpeedNonegotiate = types.BoolValue(false)
		}
	} else {
		data.SpeedNonegotiate = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.host-mode"); value.Exists() && !data.AuthenticationHostMode.IsNull() {
		data.AuthenticationHostMode = types.StringValue(value.String())
	} else {
		data.AuthenticationHostMode = types.StringNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.order-config.dot1x-config"); !data.AuthenticationOrderDot1x.IsNull() {
		if value.Exists() {
			data.AuthenticationOrderDot1x = types.BoolValue(true)
		} else {
			data.AuthenticationOrderDot1x = types.BoolValue(false)
		}
	} else {
		data.AuthenticationOrderDot1x = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.order-config.dot1x-config.mab"); !data.AuthenticationOrderDot1xMab.IsNull() {
		if value.Exists() {
			data.AuthenticationOrderDot1xMab = types.BoolValue(true)
		} else {
			data.AuthenticationOrderDot1xMab = types.BoolValue(false)
		}
	} else {
		data.AuthenticationOrderDot1xMab = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.order-config.dot1x-config.webauth"); !data.AuthenticationOrderDot1xWebauth.IsNull() {
		if value.Exists() {
			data.AuthenticationOrderDot1xWebauth = types.BoolValue(true)
		} else {
			data.AuthenticationOrderDot1xWebauth = types.BoolValue(false)
		}
	} else {
		data.AuthenticationOrderDot1xWebauth = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.order-config.mab-config"); !data.AuthenticationOrderMab.IsNull() {
		if value.Exists() {
			data.AuthenticationOrderMab = types.BoolValue(true)
		} else {
			data.AuthenticationOrderMab = types.BoolValue(false)
		}
	} else {
		data.AuthenticationOrderMab = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.order-config.mab-config.dot1x"); !data.AuthenticationOrderMabDot1x.IsNull() {
		if value.Exists() {
			data.AuthenticationOrderMabDot1x = types.BoolValue(true)
		} else {
			data.AuthenticationOrderMabDot1x = types.BoolValue(false)
		}
	} else {
		data.AuthenticationOrderMabDot1x = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.order-config.mab-config.webauth"); !data.AuthenticationOrderMabWebauth.IsNull() {
		if value.Exists() {
			data.AuthenticationOrderMabWebauth = types.BoolValue(true)
		} else {
			data.AuthenticationOrderMabWebauth = types.BoolValue(false)
		}
	} else {
		data.AuthenticationOrderMabWebauth = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.order-config.webauth-config"); !data.AuthenticationOrderWebauth.IsNull() {
		if value.Exists() {
			data.AuthenticationOrderWebauth = types.BoolValue(true)
		} else {
			data.AuthenticationOrderWebauth = types.BoolValue(false)
		}
	} else {
		data.AuthenticationOrderWebauth = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.priority-config.dot1x-config"); !data.AuthenticationPriorityDot1x.IsNull() {
		if value.Exists() {
			data.AuthenticationPriorityDot1x = types.BoolValue(true)
		} else {
			data.AuthenticationPriorityDot1x = types.BoolValue(false)
		}
	} else {
		data.AuthenticationPriorityDot1x = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.priority-config.dot1x-config.mab"); !data.AuthenticationPriorityDot1xMab.IsNull() {
		if value.Exists() {
			data.AuthenticationPriorityDot1xMab = types.BoolValue(true)
		} else {
			data.AuthenticationPriorityDot1xMab = types.BoolValue(false)
		}
	} else {
		data.AuthenticationPriorityDot1xMab = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.priority-config.dot1x-config.webauth"); !data.AuthenticationPriorityDot1xWebauth.IsNull() {
		if value.Exists() {
			data.AuthenticationPriorityDot1xWebauth = types.BoolValue(true)
		} else {
			data.AuthenticationPriorityDot1xWebauth = types.BoolValue(false)
		}
	} else {
		data.AuthenticationPriorityDot1xWebauth = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.priority-config.mab-config"); !data.AuthenticationPriorityMab.IsNull() {
		if value.Exists() {
			data.AuthenticationPriorityMab = types.BoolValue(true)
		} else {
			data.AuthenticationPriorityMab = types.BoolValue(false)
		}
	} else {
		data.AuthenticationPriorityMab = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.priority-config.mab-config.dot1x"); !data.AuthenticationPriorityMabDot1x.IsNull() {
		if value.Exists() {
			data.AuthenticationPriorityMabDot1x = types.BoolValue(true)
		} else {
			data.AuthenticationPriorityMabDot1x = types.BoolValue(false)
		}
	} else {
		data.AuthenticationPriorityMabDot1x = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.priority-config.mab-config.webauth"); !data.AuthenticationPriorityMabWebauth.IsNull() {
		if value.Exists() {
			data.AuthenticationPriorityMabWebauth = types.BoolValue(true)
		} else {
			data.AuthenticationPriorityMabWebauth = types.BoolValue(false)
		}
	} else {
		data.AuthenticationPriorityMabWebauth = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.priority-config.webauth-config"); !data.AuthenticationPriorityWebauth.IsNull() {
		if value.Exists() {
			data.AuthenticationPriorityWebauth = types.BoolValue(true)
		} else {
			data.AuthenticationPriorityWebauth = types.BoolValue(false)
		}
	} else {
		data.AuthenticationPriorityWebauth = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.port-control"); value.Exists() && !data.AuthenticationPortControl.IsNull() {
		data.AuthenticationPortControl = types.StringValue(value.String())
	} else {
		data.AuthenticationPortControl = types.StringNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.periodic"); !data.AuthenticationPeriodic.IsNull() {
		if value.Exists() {
			data.AuthenticationPeriodic = types.BoolValue(true)
		} else {
			data.AuthenticationPeriodic = types.BoolValue(false)
		}
	} else {
		data.AuthenticationPeriodic = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.timer.reauthenticate.value-config"); value.Exists() && !data.AuthenticationTimerReauthenticate.IsNull() {
		data.AuthenticationTimerReauthenticate = types.Int64Value(value.Int())
	} else {
		data.AuthenticationTimerReauthenticate = types.Int64Null()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.timer.reauthenticate.server-config"); !data.AuthenticationTimerReauthenticateServer.IsNull() {
		if value.Exists() {
			data.AuthenticationTimerReauthenticateServer = types.BoolValue(true)
		} else {
			data.AuthenticationTimerReauthenticateServer = types.BoolValue(false)
		}
	} else {
		data.AuthenticationTimerReauthenticateServer = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:mab"); !data.Mab.IsNull() {
		if value.Exists() {
			data.Mab = types.BoolValue(true)
		} else {
			data.Mab = types.BoolValue(false)
		}
	} else {
		data.Mab = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:mab.eap"); !data.MabEap.IsNull() {
		if value.Exists() {
			data.MabEap = types.BoolValue(true)
		} else {
			data.MabEap = types.BoolValue(false)
		}
	} else {
		data.MabEap = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.pae"); value.Exists() && !data.Dot1xPae.IsNull() {
		data.Dot1xPae = types.StringValue(value.String())
	} else {
		data.Dot1xPae = types.StringNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.timeout.auth-period"); value.Exists() && !data.Dot1xTimeoutAuthPeriod.IsNull() {
		data.Dot1xTimeoutAuthPeriod = types.Int64Value(value.Int())
	} else {
		data.Dot1xTimeoutAuthPeriod = types.Int64Null()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.timeout.held-period"); value.Exists() && !data.Dot1xTimeoutHeldPeriod.IsNull() {
		data.Dot1xTimeoutHeldPeriod = types.Int64Value(value.Int())
	} else {
		data.Dot1xTimeoutHeldPeriod = types.Int64Null()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.timeout.quiet-period"); value.Exists() && !data.Dot1xTimeoutQuietPeriod.IsNull() {
		data.Dot1xTimeoutQuietPeriod = types.Int64Value(value.Int())
	} else {
		data.Dot1xTimeoutQuietPeriod = types.Int64Null()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.timeout.ratelimit-period"); value.Exists() && !data.Dot1xTimeoutRatelimitPeriod.IsNull() {
		data.Dot1xTimeoutRatelimitPeriod = types.Int64Value(value.Int())
	} else {
		data.Dot1xTimeoutRatelimitPeriod = types.Int64Null()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.timeout.server-timeout"); value.Exists() && !data.Dot1xTimeoutServerTimeout.IsNull() {
		data.Dot1xTimeoutServerTimeout = types.Int64Value(value.Int())
	} else {
		data.Dot1xTimeoutServerTimeout = types.Int64Null()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.timeout.start-period"); value.Exists() && !data.Dot1xTimeoutStartPeriod.IsNull() {
		data.Dot1xTimeoutStartPeriod = types.Int64Value(value.Int())
	} else {
		data.Dot1xTimeoutStartPeriod = types.Int64Null()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.timeout.supp-timeout"); value.Exists() && !data.Dot1xTimeoutSuppTimeout.IsNull() {
		data.Dot1xTimeoutSuppTimeout = types.Int64Value(value.Int())
	} else {
		data.Dot1xTimeoutSuppTimeout = types.Int64Null()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.timeout.tx-period"); value.Exists() && !data.Dot1xTimeoutTxPeriod.IsNull() {
		data.Dot1xTimeoutTxPeriod = types.Int64Value(value.Int())
	} else {
		data.Dot1xTimeoutTxPeriod = types.Int64Null()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.max-req"); value.Exists() && !data.Dot1xMaxReq.IsNull() {
		data.Dot1xMaxReq = types.Int64Value(value.Int())
	} else {
		data.Dot1xMaxReq = types.Int64Null()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.max-reauth-req"); value.Exists() && !data.Dot1xMaxReauthReq.IsNull() {
		data.Dot1xMaxReauthReq = types.Int64Value(value.Int())
	} else {
		data.Dot1xMaxReauthReq = types.Int64Null()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-policy:service-policy.input"); value.Exists() && !data.ServicePolicyInput.IsNull() {
		data.ServicePolicyInput = types.StringValue(value.String())
	} else {
		data.ServicePolicyInput = types.StringNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-policy:service-policy.output"); value.Exists() && !data.ServicePolicyOutput.IsNull() {
		data.ServicePolicyOutput = types.StringValue(value.String())
	} else {
		data.ServicePolicyOutput = types.StringNull()
	}
	for i := range data.IpFlowMonitors {
		keys := [...]string{"name", "direction"}
		keyValues := [...]string{data.IpFlowMonitors[i].Name.ValueString(), data.IpFlowMonitors[i].Direction.ValueString()}

		var r gjson.Result
		res.Get(prefix + "ip.Cisco-IOS-XE-flow:flow.monitor-new").ForEach(
			func(_, v gjson.Result) bool {
				found := false
				for ik := range keys {
					if v.Get(keys[ik]).String() == keyValues[ik] {
						found = true
						continue
					}
					found = false
					break
				}
				if found {
					r = v
					return false
				}
				return true
			},
		)
		if value := r.Get("name"); value.Exists() && !data.IpFlowMonitors[i].Name.IsNull() {
			data.IpFlowMonitors[i].Name = types.StringValue(value.String())
		} else {
			data.IpFlowMonitors[i].Name = types.StringNull()
		}
		if value := r.Get("direction"); value.Exists() && !data.IpFlowMonitors[i].Direction.IsNull() {
			data.IpFlowMonitors[i].Direction = types.StringValue(value.String())
		} else {
			data.IpFlowMonitors[i].Direction = types.StringNull()
		}
	}
	if value := res.Get(prefix + "load-interval"); value.Exists() && !data.LoadInterval.IsNull() {
		data.LoadInterval = types.Int64Value(value.Int())
	} else {
		data.LoadInterval = types.Int64Null()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-snmp:snmp.trap.link-status"); !data.SnmpTrapLinkStatus.IsNull() {
		if value.Exists() {
			data.SnmpTrapLinkStatus = types.BoolValue(value.Bool())
		}
	} else {
		data.SnmpTrapLinkStatus = types.BoolNull()
	}
	if value := res.Get(prefix + "logging.event.link-status-enable"); !data.LoggingEventLinkStatusEnable.IsNull() {
		if value.Exists() {
			data.LoggingEventLinkStatusEnable = types.BoolValue(value.Bool())
		}
	} else {
		data.LoggingEventLinkStatusEnable = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-nbar:nbar.protocol-discovery"); !data.IpNbarProtocolDiscovery.IsNull() {
		if value.Exists() {
			data.IpNbarProtocolDiscovery = types.BoolValue(true)
		} else {
			data.IpNbarProtocolDiscovery = types.BoolValue(false)
		}
	} else {
		data.IpNbarProtocolDiscovery = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:device-tracking"); !data.DeviceTracking.IsNull() {
		if value.Exists() {
			data.DeviceTracking = types.BoolValue(true)
		} else {
			data.DeviceTracking = types.BoolValue(false)
		}
	} else {
		data.DeviceTracking = types.BoolNull()
	}
	for i := range data.DeviceTrackingAttachedPolicies {
		keys := [...]string{"attach-policy"}
		keyValues := [...]string{data.DeviceTrackingAttachedPolicies[i].Name.ValueString()}

		var r gjson.Result
		res.Get(prefix + "Cisco-IOS-XE-switch:device-tracking.attached-policies").ForEach(
			func(_, v gjson.Result) bool {
				found := false
				for ik := range keys {
					if v.Get(keys[ik]).String() == keyValues[ik] {
						found = true
						continue
					}
					found = false
					break
				}
				if found {
					r = v
					return false
				}
				return true
			},
		)
		if value := r.Get("attach-policy"); value.Exists() && !data.DeviceTrackingAttachedPolicies[i].Name.IsNull() {
			data.DeviceTrackingAttachedPolicies[i].Name = types.StringValue(value.String())
		} else {
			data.DeviceTrackingAttachedPolicies[i].Name = types.StringNull()
		}
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-cdp:cdp.enable"); !data.CdpEnable.IsNull() {
		if value.Exists() {
			data.CdpEnable = types.BoolValue(value.Bool())
		}
	} else {
		data.CdpEnable = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-cdp:cdp.tlv.default-wrp.app"); !data.CdpTlvApp.IsNull() {
		if value.Exists() {
			data.CdpTlvApp = types.BoolValue(value.Bool())
		}
	} else {
		data.CdpTlvApp = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-cdp:cdp.tlv.location-config"); !data.CdpTlvLocation.IsNull() {
		if value.Exists() {
			data.CdpTlvLocation = types.BoolValue(value.Bool())
		}
	} else {
		data.CdpTlvLocation = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-cdp:cdp.tlv.server-location-config"); !data.CdpTlvServerLocation.IsNull() {
		if value.Exists() {
			data.CdpTlvServerLocation = types.BoolValue(value.Bool())
		}
	} else {
		data.CdpTlvServerLocation = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-nat:nat.inside"); !data.IpNatInside.IsNull() {
		if value.Exists() {
			data.IpNatInside = types.BoolValue(true)
		} else {
			data.IpNatInside = types.BoolValue(false)
		}
	} else {
		data.IpNatInside = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-nat:nat.outside"); !data.IpNatOutside.IsNull() {
		if value.Exists() {
			data.IpNatOutside = types.BoolValue(true)
		} else {
			data.IpNatOutside = types.BoolValue(false)
		}
	} else {
		data.IpNatOutside = types.BoolNull()
	}
}

// End of section. //template:end updateFromBody

// Section below is generated&owned by "gen/generator.go". //template:begin fromBody

func (data *InterfaceEthernet) fromBody(ctx context.Context, res gjson.Result) {
	prefix := helpers.LastElement(data.getPath()) + "."
	if res.Get(helpers.LastElement(data.getPath())).IsArray() {
		prefix += "0."
	}
	if value := res.Get(prefix + "media-type"); value.Exists() {
		data.MediaType = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "mtu"); value.Exists() {
		data.Mtu = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "bandwidth.kilobits"); value.Exists() {
		data.Bandwidth = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "switchport-conf.switchport"); value.Exists() {
		data.Switchport = types.BoolValue(value.Bool())
	} else {
		data.Switchport = types.BoolNull()
	}
	if value := res.Get(prefix + "description"); value.Exists() {
		data.Description = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "shutdown"); value.Exists() {
		data.Shutdown = types.BoolValue(true)
	} else {
		data.Shutdown = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.proxy-arp"); value.Exists() {
		data.IpProxyArp = types.BoolValue(value.Bool())
	} else {
		data.IpProxyArp = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.redirects"); value.Exists() {
		data.IpRedirects = types.BoolValue(value.Bool())
	} else {
		data.IpRedirects = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-icmp:unreachables"); value.Exists() {
		data.IpUnreachables = types.BoolValue(value.Bool())
	} else {
		data.IpUnreachables = types.BoolNull()
	}
	if value := res.Get(prefix + "vrf.forwarding"); value.Exists() {
		data.VrfForwarding = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.address.primary.address"); value.Exists() {
		data.Ipv4Address = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.address.primary.mask"); value.Exists() {
		data.Ipv4AddressMask = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.unnumbered"); value.Exists() {
		data.Unnumbered = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "encapsulation.dot1Q.vlan-id"); value.Exists() {
		data.EncapsulationDot1qVlanId = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:channel-group.number"); value.Exists() {
		data.ChannelGroupNumber = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:channel-group.mode"); value.Exists() {
		data.ChannelGroupMode = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.dhcp.Cisco-IOS-XE-dhcp:relay.source-interface"); value.Exists() {
		data.IpDhcpRelaySourceInterface = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.access-group.in.acl.in"); value.Exists() {
		data.IpAccessGroupInEnable = types.BoolValue(true)
	} else {
		data.IpAccessGroupInEnable = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.access-group.in.acl.acl-name"); value.Exists() {
		data.IpAccessGroupIn = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.access-group.out.acl.out"); value.Exists() {
		data.IpAccessGroupOutEnable = types.BoolValue(true)
	} else {
		data.IpAccessGroupOutEnable = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.access-group.out.acl.acl-name"); value.Exists() {
		data.IpAccessGroupOut = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-spanning-tree:spanning-tree.guard"); value.Exists() {
		data.SpanningTreeGuard = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.classify"); value.Exists() {
		data.AutoQosClassify = types.BoolValue(true)
	} else {
		data.AutoQosClassify = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.classify.police"); value.Exists() {
		data.AutoQosClassifyPolice = types.BoolValue(true)
	} else {
		data.AutoQosClassifyPolice = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.trust"); value.Exists() {
		data.AutoQosTrust = types.BoolValue(true)
	} else {
		data.AutoQosTrust = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.trust.cos"); value.Exists() {
		data.AutoQosTrustCos = types.BoolValue(true)
	} else {
		data.AutoQosTrustCos = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.trust.dscp"); value.Exists() {
		data.AutoQosTrustDscp = types.BoolValue(true)
	} else {
		data.AutoQosTrustDscp = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.video.cts"); value.Exists() {
		data.AutoQosVideoCts = types.BoolValue(true)
	} else {
		data.AutoQosVideoCts = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.video.ip-camera"); value.Exists() {
		data.AutoQosVideoIpCamera = types.BoolValue(true)
	} else {
		data.AutoQosVideoIpCamera = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.video.media-player"); value.Exists() {
		data.AutoQosVideoMediaPlayer = types.BoolValue(true)
	} else {
		data.AutoQosVideoMediaPlayer = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.voip"); value.Exists() {
		data.AutoQosVoip = types.BoolValue(true)
	} else {
		data.AutoQosVoip = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.voip.cisco-phone"); value.Exists() {
		data.AutoQosVoipCiscoPhone = types.BoolValue(true)
	} else {
		data.AutoQosVoipCiscoPhone = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.voip.cisco-softphone"); value.Exists() {
		data.AutoQosVoipCiscoSoftphone = types.BoolValue(true)
	} else {
		data.AutoQosVoipCiscoSoftphone = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.voip.trust"); value.Exists() {
		data.AutoQosVoipTrust = types.BoolValue(true)
	} else {
		data.AutoQosVoipTrust = types.BoolValue(false)
	}
	if value := res.Get(prefix + "trust.device"); value.Exists() {
		data.TrustDevice = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.helper-address"); value.Exists() {
		data.HelperAddresses = make([]InterfaceEthernetHelperAddresses, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := InterfaceEthernetHelperAddresses{}
			if cValue := v.Get("address"); cValue.Exists() {
				item.Address = types.StringValue(cValue.String())
			}
			if cValue := v.Get("global"); cValue.Exists() {
				item.Global = types.BoolValue(true)
			} else {
				item.Global = types.BoolValue(false)
			}
			if cValue := v.Get("vrf"); cValue.Exists() {
				item.Vrf = types.StringValue(cValue.String())
			}
			data.HelperAddresses = append(data.HelperAddresses, item)
			return true
		})
	}
	if value := res.Get(prefix + "source.template.template-name"); value.Exists() {
		data.SourceTemplate = make([]InterfaceEthernetSourceTemplate, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := InterfaceEthernetSourceTemplate{}
			if cValue := v.Get("template-name"); cValue.Exists() {
				item.TemplateName = types.StringValue(cValue.String())
			}
			if cValue := v.Get("merge"); cValue.Exists() {
				item.Merge = types.BoolValue(true)
			} else {
				item.Merge = types.BoolValue(false)
			}
			data.SourceTemplate = append(data.SourceTemplate, item)
			return true
		})
	}
	if value := res.Get(prefix + "bfd.Cisco-IOS-XE-bfd:template"); value.Exists() {
		data.BfdTemplate = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "bfd.Cisco-IOS-XE-bfd:enable"); value.Exists() {
		data.BfdEnable = types.BoolValue(value.Bool())
	} else {
		data.BfdEnable = types.BoolNull()
	}
	if value := res.Get(prefix + "bfd.Cisco-IOS-XE-bfd:local-address"); value.Exists() {
		data.BfdLocalAddress = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "bfd.Cisco-IOS-XE-bfd:interval-interface.msecs"); value.Exists() {
		data.BfdInterval = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "bfd.Cisco-IOS-XE-bfd:interval-interface.min_rx"); value.Exists() {
		data.BfdIntervalMinRx = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "bfd.Cisco-IOS-XE-bfd:interval-interface.multiplier"); value.Exists() {
		data.BfdIntervalMultiplier = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "bfd.Cisco-IOS-XE-bfd:echo"); value.Exists() {
		data.BfdEcho = types.BoolValue(value.Bool())
	} else {
		data.BfdEcho = types.BoolNull()
	}
	if value := res.Get(prefix + "ipv6.enable"); value.Exists() {
		data.Ipv6Enable = types.BoolValue(true)
	} else {
		data.Ipv6Enable = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ipv6.mtu"); value.Exists() {
		data.Ipv6Mtu = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ipv6.nd.Cisco-IOS-XE-nd:ra.suppress.all"); value.Exists() {
		data.Ipv6NdRaSuppressAll = types.BoolValue(true)
	} else {
		data.Ipv6NdRaSuppressAll = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ipv6.address.autoconfig.default"); value.Exists() {
		data.Ipv6AddressAutoconfigDefault = types.BoolValue(true)
	} else {
		data.Ipv6AddressAutoconfigDefault = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ipv6.address.dhcp"); value.Exists() {
		data.Ipv6AddressDhcp = types.BoolValue(true)
	} else {
		data.Ipv6AddressDhcp = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ipv6.address.link-local-address"); value.Exists() {
		data.Ipv6LinkLocalAddresses = make([]InterfaceEthernetIpv6LinkLocalAddresses, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := InterfaceEthernetIpv6LinkLocalAddresses{}
			if cValue := v.Get("address"); cValue.Exists() {
				item.Address = types.StringValue(cValue.String())
			}
			if cValue := v.Get("link-local"); cValue.Exists() {
				item.LinkLocal = types.BoolValue(true)
			} else {
				item.LinkLocal = types.BoolValue(false)
			}
			data.Ipv6LinkLocalAddresses = append(data.Ipv6LinkLocalAddresses, item)
			return true
		})
	}
	if value := res.Get(prefix + "ipv6.address.prefix-list"); value.Exists() {
		data.Ipv6Addresses = make([]InterfaceEthernetIpv6Addresses, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := InterfaceEthernetIpv6Addresses{}
			if cValue := v.Get("prefix"); cValue.Exists() {
				item.Prefix = types.StringValue(cValue.String())
			}
			if cValue := v.Get("eui-64"); cValue.Exists() {
				item.Eui64 = types.BoolValue(true)
			} else {
				item.Eui64 = types.BoolValue(false)
			}
			data.Ipv6Addresses = append(data.Ipv6Addresses, item)
			return true
		})
	}
	if value := res.Get(prefix + "ipv6.Cisco-IOS-XE-flow:flow.monitor-new"); value.Exists() {
		data.Ipv6FlowMonitors = make([]InterfaceEthernetIpv6FlowMonitors, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := InterfaceEthernetIpv6FlowMonitors{}
			if cValue := v.Get("name"); cValue.Exists() {
				item.Name = types.StringValue(cValue.String())
			}
			if cValue := v.Get("direction"); cValue.Exists() {
				item.Direction = types.StringValue(cValue.String())
			}
			data.Ipv6FlowMonitors = append(data.Ipv6FlowMonitors, item)
			return true
		})
	}
	if value := res.Get(prefix + "arp.timeout"); value.Exists() {
		data.ArpTimeout = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-spanning-tree:spanning-tree.link-type"); value.Exists() {
		data.SpanningTreeLinkType = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-spanning-tree:spanning-tree.bpduguard.enable"); value.Exists() {
		data.BpduguardEnable = types.BoolValue(true)
	} else {
		data.BpduguardEnable = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-spanning-tree:spanning-tree.bpduguard.disable"); value.Exists() {
		data.BpduguardDisable = types.BoolValue(true)
	} else {
		data.BpduguardDisable = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-spanning-tree:spanning-tree.portfast"); value.Exists() {
		data.SpanningTreePortfast = types.BoolValue(true)
	} else {
		data.SpanningTreePortfast = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-spanning-tree:spanning-tree.portfast.disable"); value.Exists() {
		data.SpanningTreePortfastDisable = types.BoolValue(true)
	} else {
		data.SpanningTreePortfastDisable = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-spanning-tree:spanning-tree.portfast.trunk"); value.Exists() {
		data.SpanningTreePortfastTrunk = types.BoolValue(true)
	} else {
		data.SpanningTreePortfastTrunk = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-spanning-tree:spanning-tree.portfast.edge"); value.Exists() {
		data.SpanningTreePortfastEdge = types.BoolValue(true)
	} else {
		data.SpanningTreePortfastEdge = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.arp.inspection.trust"); value.Exists() {
		data.IpArpInspectionTrust = types.BoolValue(true)
	} else {
		data.IpArpInspectionTrust = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.arp.inspection.limit.rate"); value.Exists() {
		data.IpArpInspectionLimitRate = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.dhcp.Cisco-IOS-XE-dhcp:snooping.trust"); value.Exists() {
		data.IpDhcpSnoopingTrust = types.BoolValue(true)
	} else {
		data.IpDhcpSnoopingTrust = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-100"); value.Exists() {
		data.Speed100 = types.BoolValue(true)
	} else {
		data.Speed100 = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-1000"); value.Exists() {
		data.Speed1000 = types.BoolValue(true)
	} else {
		data.Speed1000 = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-2500"); value.Exists() {
		data.Speed2500 = types.BoolValue(true)
	} else {
		data.Speed2500 = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-5000"); value.Exists() {
		data.Speed5000 = types.BoolValue(true)
	} else {
		data.Speed5000 = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-10000"); value.Exists() {
		data.Speed10000 = types.BoolValue(true)
	} else {
		data.Speed10000 = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-25000"); value.Exists() {
		data.Speed25000 = types.BoolValue(true)
	} else {
		data.Speed25000 = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-40000"); value.Exists() {
		data.Speed40000 = types.BoolValue(true)
	} else {
		data.Speed40000 = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-100000"); value.Exists() {
		data.Speed100000 = types.BoolValue(true)
	} else {
		data.Speed100000 = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:negotiation.auto"); value.Exists() {
		data.NegotiationAuto = types.BoolValue(value.Bool())
	} else {
		data.NegotiationAuto = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.nonegotiate"); value.Exists() {
		data.SpeedNonegotiate = types.BoolValue(true)
	} else {
		data.SpeedNonegotiate = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.host-mode"); value.Exists() {
		data.AuthenticationHostMode = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.order-config.dot1x-config"); value.Exists() {
		data.AuthenticationOrderDot1x = types.BoolValue(true)
	} else {
		data.AuthenticationOrderDot1x = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.order-config.dot1x-config.mab"); value.Exists() {
		data.AuthenticationOrderDot1xMab = types.BoolValue(true)
	} else {
		data.AuthenticationOrderDot1xMab = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.order-config.dot1x-config.webauth"); value.Exists() {
		data.AuthenticationOrderDot1xWebauth = types.BoolValue(true)
	} else {
		data.AuthenticationOrderDot1xWebauth = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.order-config.mab-config"); value.Exists() {
		data.AuthenticationOrderMab = types.BoolValue(true)
	} else {
		data.AuthenticationOrderMab = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.order-config.mab-config.dot1x"); value.Exists() {
		data.AuthenticationOrderMabDot1x = types.BoolValue(true)
	} else {
		data.AuthenticationOrderMabDot1x = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.order-config.mab-config.webauth"); value.Exists() {
		data.AuthenticationOrderMabWebauth = types.BoolValue(true)
	} else {
		data.AuthenticationOrderMabWebauth = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.order-config.webauth-config"); value.Exists() {
		data.AuthenticationOrderWebauth = types.BoolValue(true)
	} else {
		data.AuthenticationOrderWebauth = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.priority-config.dot1x-config"); value.Exists() {
		data.AuthenticationPriorityDot1x = types.BoolValue(true)
	} else {
		data.AuthenticationPriorityDot1x = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.priority-config.dot1x-config.mab"); value.Exists() {
		data.AuthenticationPriorityDot1xMab = types.BoolValue(true)
	} else {
		data.AuthenticationPriorityDot1xMab = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.priority-config.dot1x-config.webauth"); value.Exists() {
		data.AuthenticationPriorityDot1xWebauth = types.BoolValue(true)
	} else {
		data.AuthenticationPriorityDot1xWebauth = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.priority-config.mab-config"); value.Exists() {
		data.AuthenticationPriorityMab = types.BoolValue(true)
	} else {
		data.AuthenticationPriorityMab = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.priority-config.mab-config.dot1x"); value.Exists() {
		data.AuthenticationPriorityMabDot1x = types.BoolValue(true)
	} else {
		data.AuthenticationPriorityMabDot1x = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.priority-config.mab-config.webauth"); value.Exists() {
		data.AuthenticationPriorityMabWebauth = types.BoolValue(true)
	} else {
		data.AuthenticationPriorityMabWebauth = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.priority-config.webauth-config"); value.Exists() {
		data.AuthenticationPriorityWebauth = types.BoolValue(true)
	} else {
		data.AuthenticationPriorityWebauth = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.port-control"); value.Exists() {
		data.AuthenticationPortControl = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.periodic"); value.Exists() {
		data.AuthenticationPeriodic = types.BoolValue(true)
	} else {
		data.AuthenticationPeriodic = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.timer.reauthenticate.value-config"); value.Exists() {
		data.AuthenticationTimerReauthenticate = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.timer.reauthenticate.server-config"); value.Exists() {
		data.AuthenticationTimerReauthenticateServer = types.BoolValue(true)
	} else {
		data.AuthenticationTimerReauthenticateServer = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:mab"); value.Exists() {
		data.Mab = types.BoolValue(true)
	} else {
		data.Mab = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:mab.eap"); value.Exists() {
		data.MabEap = types.BoolValue(true)
	} else {
		data.MabEap = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.pae"); value.Exists() {
		data.Dot1xPae = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.timeout.auth-period"); value.Exists() {
		data.Dot1xTimeoutAuthPeriod = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.timeout.held-period"); value.Exists() {
		data.Dot1xTimeoutHeldPeriod = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.timeout.quiet-period"); value.Exists() {
		data.Dot1xTimeoutQuietPeriod = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.timeout.ratelimit-period"); value.Exists() {
		data.Dot1xTimeoutRatelimitPeriod = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.timeout.server-timeout"); value.Exists() {
		data.Dot1xTimeoutServerTimeout = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.timeout.start-period"); value.Exists() {
		data.Dot1xTimeoutStartPeriod = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.timeout.supp-timeout"); value.Exists() {
		data.Dot1xTimeoutSuppTimeout = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.timeout.tx-period"); value.Exists() {
		data.Dot1xTimeoutTxPeriod = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.max-req"); value.Exists() {
		data.Dot1xMaxReq = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.max-reauth-req"); value.Exists() {
		data.Dot1xMaxReauthReq = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-policy:service-policy.input"); value.Exists() {
		data.ServicePolicyInput = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-policy:service-policy.output"); value.Exists() {
		data.ServicePolicyOutput = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-flow:flow.monitor-new"); value.Exists() {
		data.IpFlowMonitors = make([]InterfaceEthernetIpFlowMonitors, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := InterfaceEthernetIpFlowMonitors{}
			if cValue := v.Get("name"); cValue.Exists() {
				item.Name = types.StringValue(cValue.String())
			}
			if cValue := v.Get("direction"); cValue.Exists() {
				item.Direction = types.StringValue(cValue.String())
			}
			data.IpFlowMonitors = append(data.IpFlowMonitors, item)
			return true
		})
	}
	if value := res.Get(prefix + "load-interval"); value.Exists() {
		data.LoadInterval = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-snmp:snmp.trap.link-status"); value.Exists() {
		data.SnmpTrapLinkStatus = types.BoolValue(value.Bool())
	} else {
		data.SnmpTrapLinkStatus = types.BoolNull()
	}
	if value := res.Get(prefix + "logging.event.link-status-enable"); value.Exists() {
		data.LoggingEventLinkStatusEnable = types.BoolValue(value.Bool())
	} else {
		data.LoggingEventLinkStatusEnable = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-nbar:nbar.protocol-discovery"); value.Exists() {
		data.IpNbarProtocolDiscovery = types.BoolValue(true)
	} else {
		data.IpNbarProtocolDiscovery = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:device-tracking"); value.Exists() {
		data.DeviceTracking = types.BoolValue(true)
	} else {
		data.DeviceTracking = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:device-tracking.attached-policies"); value.Exists() {
		data.DeviceTrackingAttachedPolicies = make([]InterfaceEthernetDeviceTrackingAttachedPolicies, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := InterfaceEthernetDeviceTrackingAttachedPolicies{}
			if cValue := v.Get("attach-policy"); cValue.Exists() {
				item.Name = types.StringValue(cValue.String())
			}
			data.DeviceTrackingAttachedPolicies = append(data.DeviceTrackingAttachedPolicies, item)
			return true
		})
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-cdp:cdp.enable"); value.Exists() {
		data.CdpEnable = types.BoolValue(value.Bool())
	} else {
		data.CdpEnable = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-cdp:cdp.tlv.default-wrp.app"); value.Exists() {
		data.CdpTlvApp = types.BoolValue(value.Bool())
	} else {
		data.CdpTlvApp = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-cdp:cdp.tlv.location-config"); value.Exists() {
		data.CdpTlvLocation = types.BoolValue(value.Bool())
	} else {
		data.CdpTlvLocation = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-cdp:cdp.tlv.server-location-config"); value.Exists() {
		data.CdpTlvServerLocation = types.BoolValue(value.Bool())
	} else {
		data.CdpTlvServerLocation = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-nat:nat.inside"); value.Exists() {
		data.IpNatInside = types.BoolValue(true)
	} else {
		data.IpNatInside = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-nat:nat.outside"); value.Exists() {
		data.IpNatOutside = types.BoolValue(true)
	} else {
		data.IpNatOutside = types.BoolValue(false)
	}
}

// End of section. //template:end fromBody

// Section below is generated&owned by "gen/generator.go". //template:begin fromBodyData

func (data *InterfaceEthernetData) fromBody(ctx context.Context, res gjson.Result) {
	prefix := helpers.LastElement(data.getPath()) + "."
	if res.Get(helpers.LastElement(data.getPath())).IsArray() {
		prefix += "0."
	}
	if value := res.Get(prefix + "media-type"); value.Exists() {
		data.MediaType = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "mtu"); value.Exists() {
		data.Mtu = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "bandwidth.kilobits"); value.Exists() {
		data.Bandwidth = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "switchport-conf.switchport"); value.Exists() {
		data.Switchport = types.BoolValue(value.Bool())
	} else {
		data.Switchport = types.BoolNull()
	}
	if value := res.Get(prefix + "description"); value.Exists() {
		data.Description = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "shutdown"); value.Exists() {
		data.Shutdown = types.BoolValue(true)
	} else {
		data.Shutdown = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.proxy-arp"); value.Exists() {
		data.IpProxyArp = types.BoolValue(value.Bool())
	} else {
		data.IpProxyArp = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.redirects"); value.Exists() {
		data.IpRedirects = types.BoolValue(value.Bool())
	} else {
		data.IpRedirects = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-icmp:unreachables"); value.Exists() {
		data.IpUnreachables = types.BoolValue(value.Bool())
	} else {
		data.IpUnreachables = types.BoolNull()
	}
	if value := res.Get(prefix + "vrf.forwarding"); value.Exists() {
		data.VrfForwarding = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.address.primary.address"); value.Exists() {
		data.Ipv4Address = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.address.primary.mask"); value.Exists() {
		data.Ipv4AddressMask = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.unnumbered"); value.Exists() {
		data.Unnumbered = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "encapsulation.dot1Q.vlan-id"); value.Exists() {
		data.EncapsulationDot1qVlanId = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:channel-group.number"); value.Exists() {
		data.ChannelGroupNumber = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:channel-group.mode"); value.Exists() {
		data.ChannelGroupMode = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.dhcp.Cisco-IOS-XE-dhcp:relay.source-interface"); value.Exists() {
		data.IpDhcpRelaySourceInterface = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.access-group.in.acl.in"); value.Exists() {
		data.IpAccessGroupInEnable = types.BoolValue(true)
	} else {
		data.IpAccessGroupInEnable = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.access-group.in.acl.acl-name"); value.Exists() {
		data.IpAccessGroupIn = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.access-group.out.acl.out"); value.Exists() {
		data.IpAccessGroupOutEnable = types.BoolValue(true)
	} else {
		data.IpAccessGroupOutEnable = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.access-group.out.acl.acl-name"); value.Exists() {
		data.IpAccessGroupOut = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-spanning-tree:spanning-tree.guard"); value.Exists() {
		data.SpanningTreeGuard = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.classify"); value.Exists() {
		data.AutoQosClassify = types.BoolValue(true)
	} else {
		data.AutoQosClassify = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.classify.police"); value.Exists() {
		data.AutoQosClassifyPolice = types.BoolValue(true)
	} else {
		data.AutoQosClassifyPolice = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.trust"); value.Exists() {
		data.AutoQosTrust = types.BoolValue(true)
	} else {
		data.AutoQosTrust = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.trust.cos"); value.Exists() {
		data.AutoQosTrustCos = types.BoolValue(true)
	} else {
		data.AutoQosTrustCos = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.trust.dscp"); value.Exists() {
		data.AutoQosTrustDscp = types.BoolValue(true)
	} else {
		data.AutoQosTrustDscp = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.video.cts"); value.Exists() {
		data.AutoQosVideoCts = types.BoolValue(true)
	} else {
		data.AutoQosVideoCts = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.video.ip-camera"); value.Exists() {
		data.AutoQosVideoIpCamera = types.BoolValue(true)
	} else {
		data.AutoQosVideoIpCamera = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.video.media-player"); value.Exists() {
		data.AutoQosVideoMediaPlayer = types.BoolValue(true)
	} else {
		data.AutoQosVideoMediaPlayer = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.voip"); value.Exists() {
		data.AutoQosVoip = types.BoolValue(true)
	} else {
		data.AutoQosVoip = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.voip.cisco-phone"); value.Exists() {
		data.AutoQosVoipCiscoPhone = types.BoolValue(true)
	} else {
		data.AutoQosVoipCiscoPhone = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.voip.cisco-softphone"); value.Exists() {
		data.AutoQosVoipCiscoSoftphone = types.BoolValue(true)
	} else {
		data.AutoQosVoipCiscoSoftphone = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:auto.qos.voip.trust"); value.Exists() {
		data.AutoQosVoipTrust = types.BoolValue(true)
	} else {
		data.AutoQosVoipTrust = types.BoolValue(false)
	}
	if value := res.Get(prefix + "trust.device"); value.Exists() {
		data.TrustDevice = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.helper-address"); value.Exists() {
		data.HelperAddresses = make([]InterfaceEthernetHelperAddresses, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := InterfaceEthernetHelperAddresses{}
			if cValue := v.Get("address"); cValue.Exists() {
				item.Address = types.StringValue(cValue.String())
			}
			if cValue := v.Get("global"); cValue.Exists() {
				item.Global = types.BoolValue(true)
			} else {
				item.Global = types.BoolValue(false)
			}
			if cValue := v.Get("vrf"); cValue.Exists() {
				item.Vrf = types.StringValue(cValue.String())
			}
			data.HelperAddresses = append(data.HelperAddresses, item)
			return true
		})
	}
	if value := res.Get(prefix + "source.template.template-name"); value.Exists() {
		data.SourceTemplate = make([]InterfaceEthernetSourceTemplate, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := InterfaceEthernetSourceTemplate{}
			if cValue := v.Get("template-name"); cValue.Exists() {
				item.TemplateName = types.StringValue(cValue.String())
			}
			if cValue := v.Get("merge"); cValue.Exists() {
				item.Merge = types.BoolValue(true)
			} else {
				item.Merge = types.BoolValue(false)
			}
			data.SourceTemplate = append(data.SourceTemplate, item)
			return true
		})
	}
	if value := res.Get(prefix + "bfd.Cisco-IOS-XE-bfd:template"); value.Exists() {
		data.BfdTemplate = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "bfd.Cisco-IOS-XE-bfd:enable"); value.Exists() {
		data.BfdEnable = types.BoolValue(value.Bool())
	} else {
		data.BfdEnable = types.BoolNull()
	}
	if value := res.Get(prefix + "bfd.Cisco-IOS-XE-bfd:local-address"); value.Exists() {
		data.BfdLocalAddress = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "bfd.Cisco-IOS-XE-bfd:interval-interface.msecs"); value.Exists() {
		data.BfdInterval = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "bfd.Cisco-IOS-XE-bfd:interval-interface.min_rx"); value.Exists() {
		data.BfdIntervalMinRx = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "bfd.Cisco-IOS-XE-bfd:interval-interface.multiplier"); value.Exists() {
		data.BfdIntervalMultiplier = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "bfd.Cisco-IOS-XE-bfd:echo"); value.Exists() {
		data.BfdEcho = types.BoolValue(value.Bool())
	} else {
		data.BfdEcho = types.BoolNull()
	}
	if value := res.Get(prefix + "ipv6.enable"); value.Exists() {
		data.Ipv6Enable = types.BoolValue(true)
	} else {
		data.Ipv6Enable = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ipv6.mtu"); value.Exists() {
		data.Ipv6Mtu = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ipv6.nd.Cisco-IOS-XE-nd:ra.suppress.all"); value.Exists() {
		data.Ipv6NdRaSuppressAll = types.BoolValue(true)
	} else {
		data.Ipv6NdRaSuppressAll = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ipv6.address.autoconfig.default"); value.Exists() {
		data.Ipv6AddressAutoconfigDefault = types.BoolValue(true)
	} else {
		data.Ipv6AddressAutoconfigDefault = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ipv6.address.dhcp"); value.Exists() {
		data.Ipv6AddressDhcp = types.BoolValue(true)
	} else {
		data.Ipv6AddressDhcp = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ipv6.address.link-local-address"); value.Exists() {
		data.Ipv6LinkLocalAddresses = make([]InterfaceEthernetIpv6LinkLocalAddresses, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := InterfaceEthernetIpv6LinkLocalAddresses{}
			if cValue := v.Get("address"); cValue.Exists() {
				item.Address = types.StringValue(cValue.String())
			}
			if cValue := v.Get("link-local"); cValue.Exists() {
				item.LinkLocal = types.BoolValue(true)
			} else {
				item.LinkLocal = types.BoolValue(false)
			}
			data.Ipv6LinkLocalAddresses = append(data.Ipv6LinkLocalAddresses, item)
			return true
		})
	}
	if value := res.Get(prefix + "ipv6.address.prefix-list"); value.Exists() {
		data.Ipv6Addresses = make([]InterfaceEthernetIpv6Addresses, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := InterfaceEthernetIpv6Addresses{}
			if cValue := v.Get("prefix"); cValue.Exists() {
				item.Prefix = types.StringValue(cValue.String())
			}
			if cValue := v.Get("eui-64"); cValue.Exists() {
				item.Eui64 = types.BoolValue(true)
			} else {
				item.Eui64 = types.BoolValue(false)
			}
			data.Ipv6Addresses = append(data.Ipv6Addresses, item)
			return true
		})
	}
	if value := res.Get(prefix + "ipv6.Cisco-IOS-XE-flow:flow.monitor-new"); value.Exists() {
		data.Ipv6FlowMonitors = make([]InterfaceEthernetIpv6FlowMonitors, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := InterfaceEthernetIpv6FlowMonitors{}
			if cValue := v.Get("name"); cValue.Exists() {
				item.Name = types.StringValue(cValue.String())
			}
			if cValue := v.Get("direction"); cValue.Exists() {
				item.Direction = types.StringValue(cValue.String())
			}
			data.Ipv6FlowMonitors = append(data.Ipv6FlowMonitors, item)
			return true
		})
	}
	if value := res.Get(prefix + "arp.timeout"); value.Exists() {
		data.ArpTimeout = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-spanning-tree:spanning-tree.link-type"); value.Exists() {
		data.SpanningTreeLinkType = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-spanning-tree:spanning-tree.bpduguard.enable"); value.Exists() {
		data.BpduguardEnable = types.BoolValue(true)
	} else {
		data.BpduguardEnable = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-spanning-tree:spanning-tree.bpduguard.disable"); value.Exists() {
		data.BpduguardDisable = types.BoolValue(true)
	} else {
		data.BpduguardDisable = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-spanning-tree:spanning-tree.portfast"); value.Exists() {
		data.SpanningTreePortfast = types.BoolValue(true)
	} else {
		data.SpanningTreePortfast = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-spanning-tree:spanning-tree.portfast.disable"); value.Exists() {
		data.SpanningTreePortfastDisable = types.BoolValue(true)
	} else {
		data.SpanningTreePortfastDisable = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-spanning-tree:spanning-tree.portfast.trunk"); value.Exists() {
		data.SpanningTreePortfastTrunk = types.BoolValue(true)
	} else {
		data.SpanningTreePortfastTrunk = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-spanning-tree:spanning-tree.portfast.edge"); value.Exists() {
		data.SpanningTreePortfastEdge = types.BoolValue(true)
	} else {
		data.SpanningTreePortfastEdge = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.arp.inspection.trust"); value.Exists() {
		data.IpArpInspectionTrust = types.BoolValue(true)
	} else {
		data.IpArpInspectionTrust = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.arp.inspection.limit.rate"); value.Exists() {
		data.IpArpInspectionLimitRate = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.dhcp.Cisco-IOS-XE-dhcp:snooping.trust"); value.Exists() {
		data.IpDhcpSnoopingTrust = types.BoolValue(true)
	} else {
		data.IpDhcpSnoopingTrust = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-100"); value.Exists() {
		data.Speed100 = types.BoolValue(true)
	} else {
		data.Speed100 = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-1000"); value.Exists() {
		data.Speed1000 = types.BoolValue(true)
	} else {
		data.Speed1000 = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-2500"); value.Exists() {
		data.Speed2500 = types.BoolValue(true)
	} else {
		data.Speed2500 = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-5000"); value.Exists() {
		data.Speed5000 = types.BoolValue(true)
	} else {
		data.Speed5000 = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-10000"); value.Exists() {
		data.Speed10000 = types.BoolValue(true)
	} else {
		data.Speed10000 = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-25000"); value.Exists() {
		data.Speed25000 = types.BoolValue(true)
	} else {
		data.Speed25000 = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-40000"); value.Exists() {
		data.Speed40000 = types.BoolValue(true)
	} else {
		data.Speed40000 = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-100000"); value.Exists() {
		data.Speed100000 = types.BoolValue(true)
	} else {
		data.Speed100000 = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:negotiation.auto"); value.Exists() {
		data.NegotiationAuto = types.BoolValue(value.Bool())
	} else {
		data.NegotiationAuto = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.nonegotiate"); value.Exists() {
		data.SpeedNonegotiate = types.BoolValue(true)
	} else {
		data.SpeedNonegotiate = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.host-mode"); value.Exists() {
		data.AuthenticationHostMode = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.order-config.dot1x-config"); value.Exists() {
		data.AuthenticationOrderDot1x = types.BoolValue(true)
	} else {
		data.AuthenticationOrderDot1x = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.order-config.dot1x-config.mab"); value.Exists() {
		data.AuthenticationOrderDot1xMab = types.BoolValue(true)
	} else {
		data.AuthenticationOrderDot1xMab = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.order-config.dot1x-config.webauth"); value.Exists() {
		data.AuthenticationOrderDot1xWebauth = types.BoolValue(true)
	} else {
		data.AuthenticationOrderDot1xWebauth = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.order-config.mab-config"); value.Exists() {
		data.AuthenticationOrderMab = types.BoolValue(true)
	} else {
		data.AuthenticationOrderMab = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.order-config.mab-config.dot1x"); value.Exists() {
		data.AuthenticationOrderMabDot1x = types.BoolValue(true)
	} else {
		data.AuthenticationOrderMabDot1x = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.order-config.mab-config.webauth"); value.Exists() {
		data.AuthenticationOrderMabWebauth = types.BoolValue(true)
	} else {
		data.AuthenticationOrderMabWebauth = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.order-config.webauth-config"); value.Exists() {
		data.AuthenticationOrderWebauth = types.BoolValue(true)
	} else {
		data.AuthenticationOrderWebauth = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.priority-config.dot1x-config"); value.Exists() {
		data.AuthenticationPriorityDot1x = types.BoolValue(true)
	} else {
		data.AuthenticationPriorityDot1x = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.priority-config.dot1x-config.mab"); value.Exists() {
		data.AuthenticationPriorityDot1xMab = types.BoolValue(true)
	} else {
		data.AuthenticationPriorityDot1xMab = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.priority-config.dot1x-config.webauth"); value.Exists() {
		data.AuthenticationPriorityDot1xWebauth = types.BoolValue(true)
	} else {
		data.AuthenticationPriorityDot1xWebauth = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.priority-config.mab-config"); value.Exists() {
		data.AuthenticationPriorityMab = types.BoolValue(true)
	} else {
		data.AuthenticationPriorityMab = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.priority-config.mab-config.dot1x"); value.Exists() {
		data.AuthenticationPriorityMabDot1x = types.BoolValue(true)
	} else {
		data.AuthenticationPriorityMabDot1x = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.priority-config.mab-config.webauth"); value.Exists() {
		data.AuthenticationPriorityMabWebauth = types.BoolValue(true)
	} else {
		data.AuthenticationPriorityMabWebauth = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.priority-config.webauth-config"); value.Exists() {
		data.AuthenticationPriorityWebauth = types.BoolValue(true)
	} else {
		data.AuthenticationPriorityWebauth = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.port-control"); value.Exists() {
		data.AuthenticationPortControl = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.periodic"); value.Exists() {
		data.AuthenticationPeriodic = types.BoolValue(true)
	} else {
		data.AuthenticationPeriodic = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.timer.reauthenticate.value-config"); value.Exists() {
		data.AuthenticationTimerReauthenticate = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:authentication.timer.reauthenticate.server-config"); value.Exists() {
		data.AuthenticationTimerReauthenticateServer = types.BoolValue(true)
	} else {
		data.AuthenticationTimerReauthenticateServer = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:mab"); value.Exists() {
		data.Mab = types.BoolValue(true)
	} else {
		data.Mab = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:mab.eap"); value.Exists() {
		data.MabEap = types.BoolValue(true)
	} else {
		data.MabEap = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.pae"); value.Exists() {
		data.Dot1xPae = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.timeout.auth-period"); value.Exists() {
		data.Dot1xTimeoutAuthPeriod = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.timeout.held-period"); value.Exists() {
		data.Dot1xTimeoutHeldPeriod = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.timeout.quiet-period"); value.Exists() {
		data.Dot1xTimeoutQuietPeriod = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.timeout.ratelimit-period"); value.Exists() {
		data.Dot1xTimeoutRatelimitPeriod = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.timeout.server-timeout"); value.Exists() {
		data.Dot1xTimeoutServerTimeout = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.timeout.start-period"); value.Exists() {
		data.Dot1xTimeoutStartPeriod = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.timeout.supp-timeout"); value.Exists() {
		data.Dot1xTimeoutSuppTimeout = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.timeout.tx-period"); value.Exists() {
		data.Dot1xTimeoutTxPeriod = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.max-req"); value.Exists() {
		data.Dot1xMaxReq = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-dot1x:dot1x.max-reauth-req"); value.Exists() {
		data.Dot1xMaxReauthReq = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-policy:service-policy.input"); value.Exists() {
		data.ServicePolicyInput = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-policy:service-policy.output"); value.Exists() {
		data.ServicePolicyOutput = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-flow:flow.monitor-new"); value.Exists() {
		data.IpFlowMonitors = make([]InterfaceEthernetIpFlowMonitors, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := InterfaceEthernetIpFlowMonitors{}
			if cValue := v.Get("name"); cValue.Exists() {
				item.Name = types.StringValue(cValue.String())
			}
			if cValue := v.Get("direction"); cValue.Exists() {
				item.Direction = types.StringValue(cValue.String())
			}
			data.IpFlowMonitors = append(data.IpFlowMonitors, item)
			return true
		})
	}
	if value := res.Get(prefix + "load-interval"); value.Exists() {
		data.LoadInterval = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-snmp:snmp.trap.link-status"); value.Exists() {
		data.SnmpTrapLinkStatus = types.BoolValue(value.Bool())
	} else {
		data.SnmpTrapLinkStatus = types.BoolNull()
	}
	if value := res.Get(prefix + "logging.event.link-status-enable"); value.Exists() {
		data.LoggingEventLinkStatusEnable = types.BoolValue(value.Bool())
	} else {
		data.LoggingEventLinkStatusEnable = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-nbar:nbar.protocol-discovery"); value.Exists() {
		data.IpNbarProtocolDiscovery = types.BoolValue(true)
	} else {
		data.IpNbarProtocolDiscovery = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:device-tracking"); value.Exists() {
		data.DeviceTracking = types.BoolValue(true)
	} else {
		data.DeviceTracking = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-switch:device-tracking.attached-policies"); value.Exists() {
		data.DeviceTrackingAttachedPolicies = make([]InterfaceEthernetDeviceTrackingAttachedPolicies, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := InterfaceEthernetDeviceTrackingAttachedPolicies{}
			if cValue := v.Get("attach-policy"); cValue.Exists() {
				item.Name = types.StringValue(cValue.String())
			}
			data.DeviceTrackingAttachedPolicies = append(data.DeviceTrackingAttachedPolicies, item)
			return true
		})
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-cdp:cdp.enable"); value.Exists() {
		data.CdpEnable = types.BoolValue(value.Bool())
	} else {
		data.CdpEnable = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-cdp:cdp.tlv.default-wrp.app"); value.Exists() {
		data.CdpTlvApp = types.BoolValue(value.Bool())
	} else {
		data.CdpTlvApp = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-cdp:cdp.tlv.location-config"); value.Exists() {
		data.CdpTlvLocation = types.BoolValue(value.Bool())
	} else {
		data.CdpTlvLocation = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-cdp:cdp.tlv.server-location-config"); value.Exists() {
		data.CdpTlvServerLocation = types.BoolValue(value.Bool())
	} else {
		data.CdpTlvServerLocation = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-nat:nat.inside"); value.Exists() {
		data.IpNatInside = types.BoolValue(true)
	} else {
		data.IpNatInside = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-nat:nat.outside"); value.Exists() {
		data.IpNatOutside = types.BoolValue(true)
	} else {
		data.IpNatOutside = types.BoolValue(false)
	}
}

// End of section. //template:end fromBodyData

// Section below is generated&owned by "gen/generator.go". //template:begin getDeletedItems

func (data *InterfaceEthernet) getDeletedItems(ctx context.Context, state InterfaceEthernet) []string {
	deletedItems := make([]string, 0)
	if !state.IpNatOutside.IsNull() && data.IpNatOutside.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-nat:nat/outside", state.getPath()))
	}
	if !state.IpNatInside.IsNull() && data.IpNatInside.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-nat:nat/inside", state.getPath()))
	}
	if !state.CdpTlvServerLocation.IsNull() && data.CdpTlvServerLocation.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-cdp:cdp/tlv/server-location-config", state.getPath()))
	}
	if !state.CdpTlvLocation.IsNull() && data.CdpTlvLocation.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-cdp:cdp/tlv/location-config", state.getPath()))
	}
	if !state.CdpTlvApp.IsNull() && data.CdpTlvApp.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-cdp:cdp/tlv/default-wrp/app", state.getPath()))
	}
	if !state.CdpEnable.IsNull() && data.CdpEnable.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-cdp:cdp/enable", state.getPath()))
	}
	for i := range state.DeviceTrackingAttachedPolicies {
		stateKeyValues := [...]string{state.DeviceTrackingAttachedPolicies[i].Name.ValueString()}

		emptyKeys := true
		if !reflect.ValueOf(state.DeviceTrackingAttachedPolicies[i].Name.ValueString()).IsZero() {
			emptyKeys = false
		}
		if emptyKeys {
			continue
		}

		found := false
		for j := range data.DeviceTrackingAttachedPolicies {
			found = true
			if state.DeviceTrackingAttachedPolicies[i].Name.ValueString() != data.DeviceTrackingAttachedPolicies[j].Name.ValueString() {
				found = false
			}
			if found {
				break
			}
		}
		if !found {
			deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-switch:device-tracking/attached-policies=%v", state.getPath(), strings.Join(stateKeyValues[:], ",")))
		}
	}
	if !state.DeviceTracking.IsNull() && data.DeviceTracking.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-switch:device-tracking", state.getPath()))
	}
	if !state.IpNbarProtocolDiscovery.IsNull() && data.IpNbarProtocolDiscovery.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-nbar:nbar/protocol-discovery", state.getPath()))
	}
	if !state.LoggingEventLinkStatusEnable.IsNull() && data.LoggingEventLinkStatusEnable.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/logging/event/link-status-enable", state.getPath()))
	}
	if !state.SnmpTrapLinkStatus.IsNull() && data.SnmpTrapLinkStatus.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-snmp:snmp/trap/link-status", state.getPath()))
	}
	if !state.LoadInterval.IsNull() && data.LoadInterval.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/load-interval", state.getPath()))
	}
	for i := range state.IpFlowMonitors {
		stateKeyValues := [...]string{state.IpFlowMonitors[i].Name.ValueString(), state.IpFlowMonitors[i].Direction.ValueString()}

		emptyKeys := true
		if !reflect.ValueOf(state.IpFlowMonitors[i].Name.ValueString()).IsZero() {
			emptyKeys = false
		}
		if !reflect.ValueOf(state.IpFlowMonitors[i].Direction.ValueString()).IsZero() {
			emptyKeys = false
		}
		if emptyKeys {
			continue
		}

		found := false
		for j := range data.IpFlowMonitors {
			found = true
			if state.IpFlowMonitors[i].Name.ValueString() != data.IpFlowMonitors[j].Name.ValueString() {
				found = false
			}
			if state.IpFlowMonitors[i].Direction.ValueString() != data.IpFlowMonitors[j].Direction.ValueString() {
				found = false
			}
			if found {
				break
			}
		}
		if !found {
			deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-flow:flow/monitor-new=%v", state.getPath(), strings.Join(stateKeyValues[:], ",")))
		}
	}
	if !state.ServicePolicyOutput.IsNull() && data.ServicePolicyOutput.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-policy:service-policy/output", state.getPath()))
	}
	if !state.ServicePolicyInput.IsNull() && data.ServicePolicyInput.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-policy:service-policy/input", state.getPath()))
	}
	if !state.Dot1xMaxReauthReq.IsNull() && data.Dot1xMaxReauthReq.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-dot1x:dot1x/max-reauth-req", state.getPath()))
	}
	if !state.Dot1xMaxReq.IsNull() && data.Dot1xMaxReq.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-dot1x:dot1x/max-req", state.getPath()))
	}
	if !state.Dot1xTimeoutTxPeriod.IsNull() && data.Dot1xTimeoutTxPeriod.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-dot1x:dot1x/timeout/tx-period", state.getPath()))
	}
	if !state.Dot1xTimeoutSuppTimeout.IsNull() && data.Dot1xTimeoutSuppTimeout.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-dot1x:dot1x/timeout/supp-timeout", state.getPath()))
	}
	if !state.Dot1xTimeoutStartPeriod.IsNull() && data.Dot1xTimeoutStartPeriod.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-dot1x:dot1x/timeout/start-period", state.getPath()))
	}
	if !state.Dot1xTimeoutServerTimeout.IsNull() && data.Dot1xTimeoutServerTimeout.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-dot1x:dot1x/timeout/server-timeout", state.getPath()))
	}
	if !state.Dot1xTimeoutRatelimitPeriod.IsNull() && data.Dot1xTimeoutRatelimitPeriod.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-dot1x:dot1x/timeout/ratelimit-period", state.getPath()))
	}
	if !state.Dot1xTimeoutQuietPeriod.IsNull() && data.Dot1xTimeoutQuietPeriod.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-dot1x:dot1x/timeout/quiet-period", state.getPath()))
	}
	if !state.Dot1xTimeoutHeldPeriod.IsNull() && data.Dot1xTimeoutHeldPeriod.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-dot1x:dot1x/timeout/held-period", state.getPath()))
	}
	if !state.Dot1xTimeoutAuthPeriod.IsNull() && data.Dot1xTimeoutAuthPeriod.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-dot1x:dot1x/timeout/auth-period", state.getPath()))
	}
	if !state.Dot1xPae.IsNull() && data.Dot1xPae.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-dot1x:dot1x/pae", state.getPath()))
	}
	if !state.MabEap.IsNull() && data.MabEap.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:mab/eap", state.getPath()))
	}
	if !state.Mab.IsNull() && data.Mab.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:mab", state.getPath()))
	}
	if !state.AuthenticationTimerReauthenticateServer.IsNull() && data.AuthenticationTimerReauthenticateServer.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/timer/reauthenticate/server-config", state.getPath()))
	}
	if !state.AuthenticationTimerReauthenticate.IsNull() && data.AuthenticationTimerReauthenticate.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/timer/reauthenticate/value-config", state.getPath()))
	}
	if !state.AuthenticationPeriodic.IsNull() && data.AuthenticationPeriodic.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/periodic", state.getPath()))
	}
	if !state.AuthenticationPortControl.IsNull() && data.AuthenticationPortControl.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/port-control", state.getPath()))
	}
	if !state.AuthenticationPriorityWebauth.IsNull() && data.AuthenticationPriorityWebauth.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/priority-config/webauth-config", state.getPath()))
	}
	if !state.AuthenticationPriorityMabWebauth.IsNull() && data.AuthenticationPriorityMabWebauth.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/priority-config/mab-config/webauth", state.getPath()))
	}
	if !state.AuthenticationPriorityMabDot1x.IsNull() && data.AuthenticationPriorityMabDot1x.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/priority-config/mab-config/dot1x", state.getPath()))
	}
	if !state.AuthenticationPriorityMab.IsNull() && data.AuthenticationPriorityMab.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/priority-config/mab-config", state.getPath()))
	}
	if !state.AuthenticationPriorityDot1xWebauth.IsNull() && data.AuthenticationPriorityDot1xWebauth.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/priority-config/dot1x-config/webauth", state.getPath()))
	}
	if !state.AuthenticationPriorityDot1xMab.IsNull() && data.AuthenticationPriorityDot1xMab.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/priority-config/dot1x-config/mab", state.getPath()))
	}
	if !state.AuthenticationPriorityDot1x.IsNull() && data.AuthenticationPriorityDot1x.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/priority-config/dot1x-config", state.getPath()))
	}
	if !state.AuthenticationOrderWebauth.IsNull() && data.AuthenticationOrderWebauth.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/order-config/webauth-config", state.getPath()))
	}
	if !state.AuthenticationOrderMabWebauth.IsNull() && data.AuthenticationOrderMabWebauth.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/order-config/mab-config/webauth", state.getPath()))
	}
	if !state.AuthenticationOrderMabDot1x.IsNull() && data.AuthenticationOrderMabDot1x.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/order-config/mab-config/dot1x", state.getPath()))
	}
	if !state.AuthenticationOrderMab.IsNull() && data.AuthenticationOrderMab.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/order-config/mab-config", state.getPath()))
	}
	if !state.AuthenticationOrderDot1xWebauth.IsNull() && data.AuthenticationOrderDot1xWebauth.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/order-config/dot1x-config/webauth", state.getPath()))
	}
	if !state.AuthenticationOrderDot1xMab.IsNull() && data.AuthenticationOrderDot1xMab.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/order-config/dot1x-config/mab", state.getPath()))
	}
	if !state.AuthenticationOrderDot1x.IsNull() && data.AuthenticationOrderDot1x.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/order-config/dot1x-config", state.getPath()))
	}
	if !state.AuthenticationHostMode.IsNull() && data.AuthenticationHostMode.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/host-mode", state.getPath()))
	}
	if !state.SpeedNonegotiate.IsNull() && data.SpeedNonegotiate.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/nonegotiate", state.getPath()))
	}
	if !state.NegotiationAuto.IsNull() && data.NegotiationAuto.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:negotiation/auto", state.getPath()))
	}
	if !state.Speed100000.IsNull() && data.Speed100000.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-100000", state.getPath()))
	}
	if !state.Speed40000.IsNull() && data.Speed40000.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-40000", state.getPath()))
	}
	if !state.Speed25000.IsNull() && data.Speed25000.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-25000", state.getPath()))
	}
	if !state.Speed10000.IsNull() && data.Speed10000.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-10000", state.getPath()))
	}
	if !state.Speed5000.IsNull() && data.Speed5000.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-5000", state.getPath()))
	}
	if !state.Speed2500.IsNull() && data.Speed2500.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-2500", state.getPath()))
	}
	if !state.Speed1000.IsNull() && data.Speed1000.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-1000", state.getPath()))
	}
	if !state.Speed100.IsNull() && data.Speed100.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-100", state.getPath()))
	}
	if !state.IpDhcpSnoopingTrust.IsNull() && data.IpDhcpSnoopingTrust.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/dhcp/Cisco-IOS-XE-dhcp:snooping/trust", state.getPath()))
	}
	if !state.IpArpInspectionLimitRate.IsNull() && data.IpArpInspectionLimitRate.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/arp/inspection/limit/rate", state.getPath()))
	}
	if !state.IpArpInspectionTrust.IsNull() && data.IpArpInspectionTrust.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/arp/inspection/trust", state.getPath()))
	}
	if !state.SpanningTreePortfastEdge.IsNull() && data.SpanningTreePortfastEdge.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-spanning-tree:spanning-tree/portfast/edge", state.getPath()))
	}
	if !state.SpanningTreePortfastTrunk.IsNull() && data.SpanningTreePortfastTrunk.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-spanning-tree:spanning-tree/portfast/trunk", state.getPath()))
	}
	if !state.SpanningTreePortfastDisable.IsNull() && data.SpanningTreePortfastDisable.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-spanning-tree:spanning-tree/portfast/disable", state.getPath()))
	}
	if !state.SpanningTreePortfast.IsNull() && data.SpanningTreePortfast.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-spanning-tree:spanning-tree/portfast", state.getPath()))
	}
	if !state.BpduguardDisable.IsNull() && data.BpduguardDisable.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-spanning-tree:spanning-tree/bpduguard/disable", state.getPath()))
	}
	if !state.BpduguardEnable.IsNull() && data.BpduguardEnable.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-spanning-tree:spanning-tree/bpduguard/enable", state.getPath()))
	}
	if !state.SpanningTreeLinkType.IsNull() && data.SpanningTreeLinkType.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-spanning-tree:spanning-tree/link-type", state.getPath()))
	}
	if !state.ArpTimeout.IsNull() && data.ArpTimeout.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/arp/timeout", state.getPath()))
	}
	for i := range state.Ipv6FlowMonitors {
		stateKeyValues := [...]string{state.Ipv6FlowMonitors[i].Name.ValueString(), state.Ipv6FlowMonitors[i].Direction.ValueString()}

		emptyKeys := true
		if !reflect.ValueOf(state.Ipv6FlowMonitors[i].Name.ValueString()).IsZero() {
			emptyKeys = false
		}
		if !reflect.ValueOf(state.Ipv6FlowMonitors[i].Direction.ValueString()).IsZero() {
			emptyKeys = false
		}
		if emptyKeys {
			continue
		}

		found := false
		for j := range data.Ipv6FlowMonitors {
			found = true
			if state.Ipv6FlowMonitors[i].Name.ValueString() != data.Ipv6FlowMonitors[j].Name.ValueString() {
				found = false
			}
			if state.Ipv6FlowMonitors[i].Direction.ValueString() != data.Ipv6FlowMonitors[j].Direction.ValueString() {
				found = false
			}
			if found {
				break
			}
		}
		if !found {
			deletedItems = append(deletedItems, fmt.Sprintf("%v/ipv6/Cisco-IOS-XE-flow:flow/monitor-new=%v", state.getPath(), strings.Join(stateKeyValues[:], ",")))
		}
	}
	for i := range state.Ipv6Addresses {
		stateKeyValues := [...]string{state.Ipv6Addresses[i].Prefix.ValueString()}

		emptyKeys := true
		if !reflect.ValueOf(state.Ipv6Addresses[i].Prefix.ValueString()).IsZero() {
			emptyKeys = false
		}
		if emptyKeys {
			continue
		}

		found := false
		for j := range data.Ipv6Addresses {
			found = true
			if state.Ipv6Addresses[i].Prefix.ValueString() != data.Ipv6Addresses[j].Prefix.ValueString() {
				found = false
			}
			if found {
				if !state.Ipv6Addresses[i].Eui64.IsNull() && data.Ipv6Addresses[j].Eui64.IsNull() {
					deletedItems = append(deletedItems, fmt.Sprintf("%v/ipv6/address/prefix-list=%v/eui-64", state.getPath(), strings.Join(stateKeyValues[:], ",")))
				}
				break
			}
		}
		if !found {
			deletedItems = append(deletedItems, fmt.Sprintf("%v/ipv6/address/prefix-list=%v", state.getPath(), strings.Join(stateKeyValues[:], ",")))
		}
	}
	for i := range state.Ipv6LinkLocalAddresses {
		stateKeyValues := [...]string{state.Ipv6LinkLocalAddresses[i].Address.ValueString()}

		emptyKeys := true
		if !reflect.ValueOf(state.Ipv6LinkLocalAddresses[i].Address.ValueString()).IsZero() {
			emptyKeys = false
		}
		if emptyKeys {
			continue
		}

		found := false
		for j := range data.Ipv6LinkLocalAddresses {
			found = true
			if state.Ipv6LinkLocalAddresses[i].Address.ValueString() != data.Ipv6LinkLocalAddresses[j].Address.ValueString() {
				found = false
			}
			if found {
				if !state.Ipv6LinkLocalAddresses[i].LinkLocal.IsNull() && data.Ipv6LinkLocalAddresses[j].LinkLocal.IsNull() {
					deletedItems = append(deletedItems, fmt.Sprintf("%v/ipv6/address/link-local-address=%v/link-local", state.getPath(), strings.Join(stateKeyValues[:], ",")))
				}
				break
			}
		}
		if !found {
			deletedItems = append(deletedItems, fmt.Sprintf("%v/ipv6/address/link-local-address=%v", state.getPath(), strings.Join(stateKeyValues[:], ",")))
		}
	}
	if !state.Ipv6AddressDhcp.IsNull() && data.Ipv6AddressDhcp.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ipv6/address/dhcp", state.getPath()))
	}
	if !state.Ipv6AddressAutoconfigDefault.IsNull() && data.Ipv6AddressAutoconfigDefault.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ipv6/address/autoconfig/default", state.getPath()))
	}
	if !state.Ipv6NdRaSuppressAll.IsNull() && data.Ipv6NdRaSuppressAll.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ipv6/nd/Cisco-IOS-XE-nd:ra/suppress/all", state.getPath()))
	}
	if !state.Ipv6Mtu.IsNull() && data.Ipv6Mtu.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ipv6/mtu", state.getPath()))
	}
	if !state.Ipv6Enable.IsNull() && data.Ipv6Enable.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ipv6/enable", state.getPath()))
	}
	if !state.BfdEcho.IsNull() && data.BfdEcho.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/bfd/Cisco-IOS-XE-bfd:echo", state.getPath()))
	}
	if !state.BfdIntervalMultiplier.IsNull() && data.BfdIntervalMultiplier.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/bfd/Cisco-IOS-XE-bfd:interval-interface", state.getPath()))
	}
	if !state.BfdIntervalMinRx.IsNull() && data.BfdIntervalMinRx.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/bfd/Cisco-IOS-XE-bfd:interval-interface", state.getPath()))
	}
	if !state.BfdInterval.IsNull() && data.BfdInterval.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/bfd/Cisco-IOS-XE-bfd:interval-interface", state.getPath()))
	}
	if !state.BfdLocalAddress.IsNull() && data.BfdLocalAddress.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/bfd/Cisco-IOS-XE-bfd:local-address", state.getPath()))
	}
	if !state.BfdEnable.IsNull() && data.BfdEnable.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/bfd/Cisco-IOS-XE-bfd:enable", state.getPath()))
	}
	if !state.BfdTemplate.IsNull() && data.BfdTemplate.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/bfd/Cisco-IOS-XE-bfd:template", state.getPath()))
	}
	for i := range state.SourceTemplate {
		stateKeyValues := [...]string{state.SourceTemplate[i].TemplateName.ValueString()}

		emptyKeys := true
		if !reflect.ValueOf(state.SourceTemplate[i].TemplateName.ValueString()).IsZero() {
			emptyKeys = false
		}
		if emptyKeys {
			continue
		}

		found := false
		for j := range data.SourceTemplate {
			found = true
			if state.SourceTemplate[i].TemplateName.ValueString() != data.SourceTemplate[j].TemplateName.ValueString() {
				found = false
			}
			if found {
				if !state.SourceTemplate[i].Merge.IsNull() && data.SourceTemplate[j].Merge.IsNull() {
					deletedItems = append(deletedItems, fmt.Sprintf("%v/source/template/template-name=%v/merge", state.getPath(), strings.Join(stateKeyValues[:], ",")))
				}
				break
			}
		}
		if !found {
			deletedItems = append(deletedItems, fmt.Sprintf("%v/source/template/template-name=%v", state.getPath(), strings.Join(stateKeyValues[:], ",")))
		}
	}
	for i := range state.HelperAddresses {
		stateKeyValues := [...]string{state.HelperAddresses[i].Address.ValueString()}

		emptyKeys := true
		if !reflect.ValueOf(state.HelperAddresses[i].Address.ValueString()).IsZero() {
			emptyKeys = false
		}
		if emptyKeys {
			continue
		}

		found := false
		for j := range data.HelperAddresses {
			found = true
			if state.HelperAddresses[i].Address.ValueString() != data.HelperAddresses[j].Address.ValueString() {
				found = false
			}
			if found {
				if !state.HelperAddresses[i].Vrf.IsNull() && data.HelperAddresses[j].Vrf.IsNull() {
					deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/helper-address=%v/vrf", state.getPath(), strings.Join(stateKeyValues[:], ",")))
				}
				if !state.HelperAddresses[i].Global.IsNull() && data.HelperAddresses[j].Global.IsNull() {
					deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/helper-address=%v/global", state.getPath(), strings.Join(stateKeyValues[:], ",")))
				}
				break
			}
		}
		if !found {
			deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/helper-address=%v", state.getPath(), strings.Join(stateKeyValues[:], ",")))
		}
	}
	if !state.TrustDevice.IsNull() && data.TrustDevice.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/trust/device", state.getPath()))
	}
	if !state.AutoQosVoipTrust.IsNull() && data.AutoQosVoipTrust.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/voip/trust", state.getPath()))
	}
	if !state.AutoQosVoipCiscoSoftphone.IsNull() && data.AutoQosVoipCiscoSoftphone.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/voip/cisco-softphone", state.getPath()))
	}
	if !state.AutoQosVoipCiscoPhone.IsNull() && data.AutoQosVoipCiscoPhone.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/voip/cisco-phone", state.getPath()))
	}
	if !state.AutoQosVoip.IsNull() && data.AutoQosVoip.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/voip", state.getPath()))
	}
	if !state.AutoQosVideoMediaPlayer.IsNull() && data.AutoQosVideoMediaPlayer.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/video/media-player", state.getPath()))
	}
	if !state.AutoQosVideoIpCamera.IsNull() && data.AutoQosVideoIpCamera.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/video/ip-camera", state.getPath()))
	}
	if !state.AutoQosVideoCts.IsNull() && data.AutoQosVideoCts.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/video/cts", state.getPath()))
	}
	if !state.AutoQosTrustDscp.IsNull() && data.AutoQosTrustDscp.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/trust/dscp", state.getPath()))
	}
	if !state.AutoQosTrustCos.IsNull() && data.AutoQosTrustCos.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/trust/cos", state.getPath()))
	}
	if !state.AutoQosTrust.IsNull() && data.AutoQosTrust.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/trust", state.getPath()))
	}
	if !state.AutoQosClassifyPolice.IsNull() && data.AutoQosClassifyPolice.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/classify/police", state.getPath()))
	}
	if !state.AutoQosClassify.IsNull() && data.AutoQosClassify.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/classify", state.getPath()))
	}
	if !state.SpanningTreeGuard.IsNull() && data.SpanningTreeGuard.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-spanning-tree:spanning-tree/guard", state.getPath()))
	}
	if !state.IpAccessGroupOut.IsNull() && data.IpAccessGroupOut.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/access-group/out/acl", state.getPath()))
	}
	if !state.IpAccessGroupOutEnable.IsNull() && data.IpAccessGroupOutEnable.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/access-group/out/acl/out", state.getPath()))
	}
	if !state.IpAccessGroupIn.IsNull() && data.IpAccessGroupIn.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/access-group/in/acl", state.getPath()))
	}
	if !state.IpAccessGroupInEnable.IsNull() && data.IpAccessGroupInEnable.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/access-group/in/acl/in", state.getPath()))
	}
	if !state.IpDhcpRelaySourceInterface.IsNull() && data.IpDhcpRelaySourceInterface.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/dhcp/Cisco-IOS-XE-dhcp:relay/source-interface", state.getPath()))
	}
	if !state.ChannelGroupMode.IsNull() && data.ChannelGroupMode.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:channel-group", state.getPath()))
	}
	if !state.ChannelGroupNumber.IsNull() && data.ChannelGroupNumber.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:channel-group", state.getPath()))
	}
	if !state.EncapsulationDot1qVlanId.IsNull() && data.EncapsulationDot1qVlanId.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/encapsulation/dot1Q/vlan-id", state.getPath()))
	}
	if !state.Unnumbered.IsNull() && data.Unnumbered.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/unnumbered", state.getPath()))
	}
	if !state.Ipv4AddressMask.IsNull() && data.Ipv4AddressMask.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/address/primary", state.getPath()))
	}
	if !state.Ipv4Address.IsNull() && data.Ipv4Address.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/address/primary", state.getPath()))
	}
	if !state.VrfForwarding.IsNull() && data.VrfForwarding.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/vrf/forwarding", state.getPath()))
	}
	if !state.IpUnreachables.IsNull() && data.IpUnreachables.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-icmp:unreachables", state.getPath()))
	}
	if !state.IpRedirects.IsNull() && data.IpRedirects.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/redirects", state.getPath()))
	}
	if !state.IpProxyArp.IsNull() && data.IpProxyArp.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/proxy-arp", state.getPath()))
	}
	if !state.Shutdown.IsNull() && data.Shutdown.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/shutdown", state.getPath()))
	}
	if !state.Description.IsNull() && data.Description.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/description", state.getPath()))
	}
	if !state.Switchport.IsNull() && data.Switchport.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/switchport-conf/switchport", state.getPath()))
	}
	if !state.Bandwidth.IsNull() && data.Bandwidth.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/bandwidth/kilobits", state.getPath()))
	}
	if !state.Mtu.IsNull() && data.Mtu.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/mtu", state.getPath()))
	}
	if !state.MediaType.IsNull() && data.MediaType.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/media-type", state.getPath()))
	}

	return deletedItems
}

// End of section. //template:end getDeletedItems

// Section below is generated&owned by "gen/generator.go". //template:begin getEmptyLeafsDelete

func (data *InterfaceEthernet) getEmptyLeafsDelete(ctx context.Context) []string {
	emptyLeafsDelete := make([]string, 0)
	if !data.IpNatOutside.IsNull() && !data.IpNatOutside.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/ip/Cisco-IOS-XE-nat:nat/outside", data.getPath()))
	}
	if !data.IpNatInside.IsNull() && !data.IpNatInside.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/ip/Cisco-IOS-XE-nat:nat/inside", data.getPath()))
	}

	if !data.DeviceTracking.IsNull() && !data.DeviceTracking.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-switch:device-tracking", data.getPath()))
	}
	if !data.IpNbarProtocolDiscovery.IsNull() && !data.IpNbarProtocolDiscovery.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/ip/Cisco-IOS-XE-nbar:nbar/protocol-discovery", data.getPath()))
	}

	if !data.MabEap.IsNull() && !data.MabEap.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:mab/eap", data.getPath()))
	}
	if !data.Mab.IsNull() && !data.Mab.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:mab", data.getPath()))
	}
	if !data.AuthenticationTimerReauthenticateServer.IsNull() && !data.AuthenticationTimerReauthenticateServer.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/timer/reauthenticate/server-config", data.getPath()))
	}
	if !data.AuthenticationPeriodic.IsNull() && !data.AuthenticationPeriodic.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/periodic", data.getPath()))
	}
	if !data.AuthenticationPriorityWebauth.IsNull() && !data.AuthenticationPriorityWebauth.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/priority-config/webauth-config", data.getPath()))
	}
	if !data.AuthenticationPriorityMabWebauth.IsNull() && !data.AuthenticationPriorityMabWebauth.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/priority-config/mab-config/webauth", data.getPath()))
	}
	if !data.AuthenticationPriorityMabDot1x.IsNull() && !data.AuthenticationPriorityMabDot1x.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/priority-config/mab-config/dot1x", data.getPath()))
	}
	if !data.AuthenticationPriorityMab.IsNull() && !data.AuthenticationPriorityMab.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/priority-config/mab-config", data.getPath()))
	}
	if !data.AuthenticationPriorityDot1xWebauth.IsNull() && !data.AuthenticationPriorityDot1xWebauth.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/priority-config/dot1x-config/webauth", data.getPath()))
	}
	if !data.AuthenticationPriorityDot1xMab.IsNull() && !data.AuthenticationPriorityDot1xMab.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/priority-config/dot1x-config/mab", data.getPath()))
	}
	if !data.AuthenticationPriorityDot1x.IsNull() && !data.AuthenticationPriorityDot1x.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/priority-config/dot1x-config", data.getPath()))
	}
	if !data.AuthenticationOrderWebauth.IsNull() && !data.AuthenticationOrderWebauth.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/order-config/webauth-config", data.getPath()))
	}
	if !data.AuthenticationOrderMabWebauth.IsNull() && !data.AuthenticationOrderMabWebauth.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/order-config/mab-config/webauth", data.getPath()))
	}
	if !data.AuthenticationOrderMabDot1x.IsNull() && !data.AuthenticationOrderMabDot1x.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/order-config/mab-config/dot1x", data.getPath()))
	}
	if !data.AuthenticationOrderMab.IsNull() && !data.AuthenticationOrderMab.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/order-config/mab-config", data.getPath()))
	}
	if !data.AuthenticationOrderDot1xWebauth.IsNull() && !data.AuthenticationOrderDot1xWebauth.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/order-config/dot1x-config/webauth", data.getPath()))
	}
	if !data.AuthenticationOrderDot1xMab.IsNull() && !data.AuthenticationOrderDot1xMab.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/order-config/dot1x-config/mab", data.getPath()))
	}
	if !data.AuthenticationOrderDot1x.IsNull() && !data.AuthenticationOrderDot1x.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/order-config/dot1x-config", data.getPath()))
	}
	if !data.SpeedNonegotiate.IsNull() && !data.SpeedNonegotiate.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/nonegotiate", data.getPath()))
	}
	if !data.Speed100000.IsNull() && !data.Speed100000.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-100000", data.getPath()))
	}
	if !data.Speed40000.IsNull() && !data.Speed40000.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-40000", data.getPath()))
	}
	if !data.Speed25000.IsNull() && !data.Speed25000.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-25000", data.getPath()))
	}
	if !data.Speed10000.IsNull() && !data.Speed10000.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-10000", data.getPath()))
	}
	if !data.Speed5000.IsNull() && !data.Speed5000.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-5000", data.getPath()))
	}
	if !data.Speed2500.IsNull() && !data.Speed2500.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-2500", data.getPath()))
	}
	if !data.Speed1000.IsNull() && !data.Speed1000.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-1000", data.getPath()))
	}
	if !data.Speed100.IsNull() && !data.Speed100.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-100", data.getPath()))
	}
	if !data.IpDhcpSnoopingTrust.IsNull() && !data.IpDhcpSnoopingTrust.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/ip/dhcp/Cisco-IOS-XE-dhcp:snooping/trust", data.getPath()))
	}
	if !data.IpArpInspectionTrust.IsNull() && !data.IpArpInspectionTrust.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/ip/arp/inspection/trust", data.getPath()))
	}
	if !data.SpanningTreePortfastEdge.IsNull() && !data.SpanningTreePortfastEdge.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-spanning-tree:spanning-tree/portfast/edge", data.getPath()))
	}
	if !data.SpanningTreePortfastTrunk.IsNull() && !data.SpanningTreePortfastTrunk.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-spanning-tree:spanning-tree/portfast/trunk", data.getPath()))
	}
	if !data.SpanningTreePortfastDisable.IsNull() && !data.SpanningTreePortfastDisable.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-spanning-tree:spanning-tree/portfast/disable", data.getPath()))
	}
	if !data.SpanningTreePortfast.IsNull() && !data.SpanningTreePortfast.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-spanning-tree:spanning-tree/portfast", data.getPath()))
	}
	if !data.BpduguardDisable.IsNull() && !data.BpduguardDisable.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-spanning-tree:spanning-tree/bpduguard/disable", data.getPath()))
	}
	if !data.BpduguardEnable.IsNull() && !data.BpduguardEnable.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-spanning-tree:spanning-tree/bpduguard/enable", data.getPath()))
	}

	for i := range data.Ipv6Addresses {
		keyValues := [...]string{data.Ipv6Addresses[i].Prefix.ValueString()}
		if !data.Ipv6Addresses[i].Eui64.IsNull() && !data.Ipv6Addresses[i].Eui64.ValueBool() {
			emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/ipv6/address/prefix-list=%v/eui-64", data.getPath(), strings.Join(keyValues[:], ",")))
		}
	}

	for i := range data.Ipv6LinkLocalAddresses {
		keyValues := [...]string{data.Ipv6LinkLocalAddresses[i].Address.ValueString()}
		if !data.Ipv6LinkLocalAddresses[i].LinkLocal.IsNull() && !data.Ipv6LinkLocalAddresses[i].LinkLocal.ValueBool() {
			emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/ipv6/address/link-local-address=%v/link-local", data.getPath(), strings.Join(keyValues[:], ",")))
		}
	}
	if !data.Ipv6AddressDhcp.IsNull() && !data.Ipv6AddressDhcp.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/ipv6/address/dhcp", data.getPath()))
	}
	if !data.Ipv6AddressAutoconfigDefault.IsNull() && !data.Ipv6AddressAutoconfigDefault.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/ipv6/address/autoconfig/default", data.getPath()))
	}
	if !data.Ipv6NdRaSuppressAll.IsNull() && !data.Ipv6NdRaSuppressAll.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/ipv6/nd/Cisco-IOS-XE-nd:ra/suppress/all", data.getPath()))
	}
	if !data.Ipv6Enable.IsNull() && !data.Ipv6Enable.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/ipv6/enable", data.getPath()))
	}

	for i := range data.SourceTemplate {
		keyValues := [...]string{data.SourceTemplate[i].TemplateName.ValueString()}
		if !data.SourceTemplate[i].Merge.IsNull() && !data.SourceTemplate[i].Merge.ValueBool() {
			emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/source/template/template-name=%v/merge", data.getPath(), strings.Join(keyValues[:], ",")))
		}
	}

	for i := range data.HelperAddresses {
		keyValues := [...]string{data.HelperAddresses[i].Address.ValueString()}
		if !data.HelperAddresses[i].Global.IsNull() && !data.HelperAddresses[i].Global.ValueBool() {
			emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/ip/helper-address=%v/global", data.getPath(), strings.Join(keyValues[:], ",")))
		}
	}
	if !data.AutoQosVoipTrust.IsNull() && !data.AutoQosVoipTrust.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/voip/trust", data.getPath()))
	}
	if !data.AutoQosVoipCiscoSoftphone.IsNull() && !data.AutoQosVoipCiscoSoftphone.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/voip/cisco-softphone", data.getPath()))
	}
	if !data.AutoQosVoipCiscoPhone.IsNull() && !data.AutoQosVoipCiscoPhone.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/voip/cisco-phone", data.getPath()))
	}
	if !data.AutoQosVoip.IsNull() && !data.AutoQosVoip.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/voip", data.getPath()))
	}
	if !data.AutoQosVideoMediaPlayer.IsNull() && !data.AutoQosVideoMediaPlayer.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/video/media-player", data.getPath()))
	}
	if !data.AutoQosVideoIpCamera.IsNull() && !data.AutoQosVideoIpCamera.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/video/ip-camera", data.getPath()))
	}
	if !data.AutoQosVideoCts.IsNull() && !data.AutoQosVideoCts.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/video/cts", data.getPath()))
	}
	if !data.AutoQosTrustDscp.IsNull() && !data.AutoQosTrustDscp.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/trust/dscp", data.getPath()))
	}
	if !data.AutoQosTrustCos.IsNull() && !data.AutoQosTrustCos.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/trust/cos", data.getPath()))
	}
	if !data.AutoQosTrust.IsNull() && !data.AutoQosTrust.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/trust", data.getPath()))
	}
	if !data.AutoQosClassifyPolice.IsNull() && !data.AutoQosClassifyPolice.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/classify/police", data.getPath()))
	}
	if !data.AutoQosClassify.IsNull() && !data.AutoQosClassify.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/classify", data.getPath()))
	}
	if !data.IpAccessGroupOutEnable.IsNull() && !data.IpAccessGroupOutEnable.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/ip/access-group/out/acl/out", data.getPath()))
	}
	if !data.IpAccessGroupInEnable.IsNull() && !data.IpAccessGroupInEnable.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/ip/access-group/in/acl/in", data.getPath()))
	}
	if !data.Shutdown.IsNull() && !data.Shutdown.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/shutdown", data.getPath()))
	}

	return emptyLeafsDelete
}

// End of section. //template:end getEmptyLeafsDelete

// Section below is generated&owned by "gen/generator.go". //template:begin getDeletePaths

func (data *InterfaceEthernet) getDeletePaths(ctx context.Context) []string {
	var deletePaths []string
	if !data.IpNatOutside.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-nat:nat/outside", data.getPath()))
	}
	if !data.IpNatInside.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-nat:nat/inside", data.getPath()))
	}
	if !data.CdpTlvServerLocation.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-cdp:cdp/tlv/server-location-config", data.getPath()))
	}
	if !data.CdpTlvLocation.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-cdp:cdp/tlv/location-config", data.getPath()))
	}
	if !data.CdpTlvApp.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-cdp:cdp/tlv/default-wrp/app", data.getPath()))
	}
	if !data.CdpEnable.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-cdp:cdp/enable", data.getPath()))
	}
	for i := range data.DeviceTrackingAttachedPolicies {
		keyValues := [...]string{data.DeviceTrackingAttachedPolicies[i].Name.ValueString()}

		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-switch:device-tracking/attached-policies=%v", data.getPath(), strings.Join(keyValues[:], ",")))
	}
	if !data.DeviceTracking.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-switch:device-tracking", data.getPath()))
	}
	if !data.IpNbarProtocolDiscovery.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-nbar:nbar/protocol-discovery", data.getPath()))
	}
	if !data.LoggingEventLinkStatusEnable.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/logging/event/link-status-enable", data.getPath()))
	}
	if !data.SnmpTrapLinkStatus.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-snmp:snmp/trap/link-status", data.getPath()))
	}
	if !data.LoadInterval.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/load-interval", data.getPath()))
	}
	for i := range data.IpFlowMonitors {
		keyValues := [...]string{data.IpFlowMonitors[i].Name.ValueString(), data.IpFlowMonitors[i].Direction.ValueString()}

		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-flow:flow/monitor-new=%v", data.getPath(), strings.Join(keyValues[:], ",")))
	}
	if !data.ServicePolicyOutput.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-policy:service-policy/output", data.getPath()))
	}
	if !data.ServicePolicyInput.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-policy:service-policy/input", data.getPath()))
	}
	if !data.Dot1xMaxReauthReq.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-dot1x:dot1x/max-reauth-req", data.getPath()))
	}
	if !data.Dot1xMaxReq.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-dot1x:dot1x/max-req", data.getPath()))
	}
	if !data.Dot1xTimeoutTxPeriod.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-dot1x:dot1x/timeout/tx-period", data.getPath()))
	}
	if !data.Dot1xTimeoutSuppTimeout.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-dot1x:dot1x/timeout/supp-timeout", data.getPath()))
	}
	if !data.Dot1xTimeoutStartPeriod.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-dot1x:dot1x/timeout/start-period", data.getPath()))
	}
	if !data.Dot1xTimeoutServerTimeout.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-dot1x:dot1x/timeout/server-timeout", data.getPath()))
	}
	if !data.Dot1xTimeoutRatelimitPeriod.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-dot1x:dot1x/timeout/ratelimit-period", data.getPath()))
	}
	if !data.Dot1xTimeoutQuietPeriod.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-dot1x:dot1x/timeout/quiet-period", data.getPath()))
	}
	if !data.Dot1xTimeoutHeldPeriod.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-dot1x:dot1x/timeout/held-period", data.getPath()))
	}
	if !data.Dot1xTimeoutAuthPeriod.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-dot1x:dot1x/timeout/auth-period", data.getPath()))
	}
	if !data.Dot1xPae.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-dot1x:dot1x/pae", data.getPath()))
	}
	if !data.MabEap.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:mab/eap", data.getPath()))
	}
	if !data.Mab.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:mab", data.getPath()))
	}
	if !data.AuthenticationTimerReauthenticateServer.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/timer/reauthenticate/server-config", data.getPath()))
	}
	if !data.AuthenticationTimerReauthenticate.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/timer/reauthenticate/value-config", data.getPath()))
	}
	if !data.AuthenticationPeriodic.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/periodic", data.getPath()))
	}
	if !data.AuthenticationPortControl.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/port-control", data.getPath()))
	}
	if !data.AuthenticationPriorityWebauth.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/priority-config/webauth-config", data.getPath()))
	}
	if !data.AuthenticationPriorityMabWebauth.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/priority-config/mab-config/webauth", data.getPath()))
	}
	if !data.AuthenticationPriorityMabDot1x.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/priority-config/mab-config/dot1x", data.getPath()))
	}
	if !data.AuthenticationPriorityMab.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/priority-config/mab-config", data.getPath()))
	}
	if !data.AuthenticationPriorityDot1xWebauth.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/priority-config/dot1x-config/webauth", data.getPath()))
	}
	if !data.AuthenticationPriorityDot1xMab.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/priority-config/dot1x-config/mab", data.getPath()))
	}
	if !data.AuthenticationPriorityDot1x.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/priority-config/dot1x-config", data.getPath()))
	}
	if !data.AuthenticationOrderWebauth.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/order-config/webauth-config", data.getPath()))
	}
	if !data.AuthenticationOrderMabWebauth.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/order-config/mab-config/webauth", data.getPath()))
	}
	if !data.AuthenticationOrderMabDot1x.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/order-config/mab-config/dot1x", data.getPath()))
	}
	if !data.AuthenticationOrderMab.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/order-config/mab-config", data.getPath()))
	}
	if !data.AuthenticationOrderDot1xWebauth.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/order-config/dot1x-config/webauth", data.getPath()))
	}
	if !data.AuthenticationOrderDot1xMab.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/order-config/dot1x-config/mab", data.getPath()))
	}
	if !data.AuthenticationOrderDot1x.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/order-config/dot1x-config", data.getPath()))
	}
	if !data.AuthenticationHostMode.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:authentication/host-mode", data.getPath()))
	}
	if !data.SpeedNonegotiate.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/nonegotiate", data.getPath()))
	}
	if !data.NegotiationAuto.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:negotiation/auto", data.getPath()))
	}
	if !data.Speed100000.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-100000", data.getPath()))
	}
	if !data.Speed40000.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-40000", data.getPath()))
	}
	if !data.Speed25000.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-25000", data.getPath()))
	}
	if !data.Speed10000.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-10000", data.getPath()))
	}
	if !data.Speed5000.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-5000", data.getPath()))
	}
	if !data.Speed2500.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-2500", data.getPath()))
	}
	if !data.Speed1000.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-1000", data.getPath()))
	}
	if !data.Speed100.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-100", data.getPath()))
	}
	if !data.IpDhcpSnoopingTrust.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/dhcp/Cisco-IOS-XE-dhcp:snooping/trust", data.getPath()))
	}
	if !data.IpArpInspectionLimitRate.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/arp/inspection/limit/rate", data.getPath()))
	}
	if !data.IpArpInspectionTrust.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/arp/inspection/trust", data.getPath()))
	}
	if !data.SpanningTreePortfastEdge.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-spanning-tree:spanning-tree/portfast/edge", data.getPath()))
	}
	if !data.SpanningTreePortfastTrunk.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-spanning-tree:spanning-tree/portfast/trunk", data.getPath()))
	}
	if !data.SpanningTreePortfastDisable.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-spanning-tree:spanning-tree/portfast/disable", data.getPath()))
	}
	if !data.SpanningTreePortfast.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-spanning-tree:spanning-tree/portfast", data.getPath()))
	}
	if !data.BpduguardDisable.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-spanning-tree:spanning-tree/bpduguard/disable", data.getPath()))
	}
	if !data.BpduguardEnable.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-spanning-tree:spanning-tree/bpduguard/enable", data.getPath()))
	}
	if !data.SpanningTreeLinkType.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-spanning-tree:spanning-tree/link-type", data.getPath()))
	}
	if !data.ArpTimeout.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/arp/timeout", data.getPath()))
	}
	for i := range data.Ipv6FlowMonitors {
		keyValues := [...]string{data.Ipv6FlowMonitors[i].Name.ValueString(), data.Ipv6FlowMonitors[i].Direction.ValueString()}

		deletePaths = append(deletePaths, fmt.Sprintf("%v/ipv6/Cisco-IOS-XE-flow:flow/monitor-new=%v", data.getPath(), strings.Join(keyValues[:], ",")))
	}
	for i := range data.Ipv6Addresses {
		keyValues := [...]string{data.Ipv6Addresses[i].Prefix.ValueString()}

		deletePaths = append(deletePaths, fmt.Sprintf("%v/ipv6/address/prefix-list=%v", data.getPath(), strings.Join(keyValues[:], ",")))
	}
	for i := range data.Ipv6LinkLocalAddresses {
		keyValues := [...]string{data.Ipv6LinkLocalAddresses[i].Address.ValueString()}

		deletePaths = append(deletePaths, fmt.Sprintf("%v/ipv6/address/link-local-address=%v", data.getPath(), strings.Join(keyValues[:], ",")))
	}
	if !data.Ipv6AddressDhcp.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ipv6/address/dhcp", data.getPath()))
	}
	if !data.Ipv6AddressAutoconfigDefault.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ipv6/address/autoconfig/default", data.getPath()))
	}
	if !data.Ipv6NdRaSuppressAll.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ipv6/nd/Cisco-IOS-XE-nd:ra/suppress/all", data.getPath()))
	}
	if !data.Ipv6Mtu.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ipv6/mtu", data.getPath()))
	}
	if !data.Ipv6Enable.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ipv6/enable", data.getPath()))
	}
	if !data.BfdEcho.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/bfd/Cisco-IOS-XE-bfd:echo", data.getPath()))
	}
	if !data.BfdIntervalMultiplier.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/bfd/Cisco-IOS-XE-bfd:interval-interface", data.getPath()))
	}
	if !data.BfdIntervalMinRx.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/bfd/Cisco-IOS-XE-bfd:interval-interface", data.getPath()))
	}
	if !data.BfdInterval.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/bfd/Cisco-IOS-XE-bfd:interval-interface", data.getPath()))
	}
	if !data.BfdLocalAddress.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/bfd/Cisco-IOS-XE-bfd:local-address", data.getPath()))
	}
	if !data.BfdEnable.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/bfd/Cisco-IOS-XE-bfd:enable", data.getPath()))
	}
	if !data.BfdTemplate.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/bfd/Cisco-IOS-XE-bfd:template", data.getPath()))
	}
	for i := range data.SourceTemplate {
		keyValues := [...]string{data.SourceTemplate[i].TemplateName.ValueString()}

		deletePaths = append(deletePaths, fmt.Sprintf("%v/source/template/template-name=%v", data.getPath(), strings.Join(keyValues[:], ",")))
	}
	for i := range data.HelperAddresses {
		keyValues := [...]string{data.HelperAddresses[i].Address.ValueString()}

		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/helper-address=%v", data.getPath(), strings.Join(keyValues[:], ",")))
	}
	if !data.TrustDevice.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/trust/device", data.getPath()))
	}
	if !data.AutoQosVoipTrust.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/voip/trust", data.getPath()))
	}
	if !data.AutoQosVoipCiscoSoftphone.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/voip/cisco-softphone", data.getPath()))
	}
	if !data.AutoQosVoipCiscoPhone.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/voip/cisco-phone", data.getPath()))
	}
	if !data.AutoQosVoip.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/voip", data.getPath()))
	}
	if !data.AutoQosVideoMediaPlayer.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/video/media-player", data.getPath()))
	}
	if !data.AutoQosVideoIpCamera.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/video/ip-camera", data.getPath()))
	}
	if !data.AutoQosVideoCts.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/video/cts", data.getPath()))
	}
	if !data.AutoQosTrustDscp.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/trust/dscp", data.getPath()))
	}
	if !data.AutoQosTrustCos.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/trust/cos", data.getPath()))
	}
	if !data.AutoQosTrust.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/trust", data.getPath()))
	}
	if !data.AutoQosClassifyPolice.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/classify/police", data.getPath()))
	}
	if !data.AutoQosClassify.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-switch:auto/qos/classify", data.getPath()))
	}
	if !data.SpanningTreeGuard.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-spanning-tree:spanning-tree/guard", data.getPath()))
	}
	if !data.IpAccessGroupOut.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/access-group/out/acl", data.getPath()))
	}
	if !data.IpAccessGroupOutEnable.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/access-group/out/acl/out", data.getPath()))
	}
	if !data.IpAccessGroupIn.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/access-group/in/acl", data.getPath()))
	}
	if !data.IpAccessGroupInEnable.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/access-group/in/acl/in", data.getPath()))
	}
	if !data.IpDhcpRelaySourceInterface.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/dhcp/Cisco-IOS-XE-dhcp:relay/source-interface", data.getPath()))
	}
	if !data.ChannelGroupMode.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:channel-group", data.getPath()))
	}
	if !data.ChannelGroupNumber.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:channel-group", data.getPath()))
	}
	if !data.EncapsulationDot1qVlanId.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/encapsulation/dot1Q/vlan-id", data.getPath()))
	}
	if !data.Unnumbered.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/unnumbered", data.getPath()))
	}
	if !data.Ipv4AddressMask.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/address/primary", data.getPath()))
	}
	if !data.Ipv4Address.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/address/primary", data.getPath()))
	}
	if !data.VrfForwarding.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/vrf/forwarding", data.getPath()))
	}
	if !data.IpUnreachables.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-icmp:unreachables", data.getPath()))
	}
	if !data.IpRedirects.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/redirects", data.getPath()))
	}
	if !data.IpProxyArp.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/proxy-arp", data.getPath()))
	}
	if !data.Shutdown.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/shutdown", data.getPath()))
	}
	if !data.Description.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/description", data.getPath()))
	}
	if !data.Switchport.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/switchport-conf/switchport", data.getPath()))
	}
	if !data.Bandwidth.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/bandwidth/kilobits", data.getPath()))
	}
	if !data.Mtu.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/mtu", data.getPath()))
	}
	if !data.MediaType.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/media-type", data.getPath()))
	}

	return deletePaths
}

// End of section. //template:end getDeletePaths
