// 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"
	"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 System struct {
	Device                                                 types.String                                        `tfsdk:"device"`
	Id                                                     types.String                                        `tfsdk:"id"`
	Hostname                                               types.String                                        `tfsdk:"hostname"`
	IpBgpCommunityNewFormat                                types.Bool                                          `tfsdk:"ip_bgp_community_new_format"`
	IpRouting                                              types.Bool                                          `tfsdk:"ip_routing"`
	Ipv6UnicastRouting                                     types.Bool                                          `tfsdk:"ipv6_unicast_routing"`
	Mtu                                                    types.Int64                                         `tfsdk:"mtu"`
	IpSourceRoute                                          types.Bool                                          `tfsdk:"ip_source_route"`
	IpDomainLookup                                         types.Bool                                          `tfsdk:"ip_domain_lookup"`
	IpDomainName                                           types.String                                        `tfsdk:"ip_domain_name"`
	LoginDelay                                             types.Int64                                         `tfsdk:"login_delay"`
	LoginOnFailure                                         types.Bool                                          `tfsdk:"login_on_failure"`
	LoginOnFailureLog                                      types.Bool                                          `tfsdk:"login_on_failure_log"`
	LoginOnSuccess                                         types.Bool                                          `tfsdk:"login_on_success"`
	LoginOnSuccessLog                                      types.Bool                                          `tfsdk:"login_on_success_log"`
	IpMulticastRouting                                     types.Bool                                          `tfsdk:"ip_multicast_routing"`
	MulticastRoutingSwitch                                 types.Bool                                          `tfsdk:"multicast_routing_switch"`
	IpMulticastRoutingDistributed                          types.Bool                                          `tfsdk:"ip_multicast_routing_distributed"`
	MulticastRoutingVrfs                                   []SystemMulticastRoutingVrfs                        `tfsdk:"multicast_routing_vrfs"`
	IpHttpAccessClass                                      types.Int64                                         `tfsdk:"ip_http_access_class"`
	IpHttpAuthenticationAaa                                types.Bool                                          `tfsdk:"ip_http_authentication_aaa"`
	IpHttpAuthenticationAaaExecAuthorization               types.String                                        `tfsdk:"ip_http_authentication_aaa_exec_authorization"`
	IpHttpAuthenticationAaaLoginAuthentication             types.String                                        `tfsdk:"ip_http_authentication_aaa_login_authentication"`
	IpHttpAuthenticationAaaCommandAuthorization            []SystemIpHttpAuthenticationAaaCommandAuthorization `tfsdk:"ip_http_authentication_aaa_command_authorization"`
	IpHttpAuthenticationLocal                              types.Bool                                          `tfsdk:"ip_http_authentication_local"`
	IpHttpServer                                           types.Bool                                          `tfsdk:"ip_http_server"`
	IpHttpSecureServer                                     types.Bool                                          `tfsdk:"ip_http_secure_server"`
	IpHttpSecureTrustpoint                                 types.String                                        `tfsdk:"ip_http_secure_trustpoint"`
	IpHttpTlsVersion                                       types.String                                        `tfsdk:"ip_http_tls_version"`
	IpHttpClientSecureTrustpoint                           types.String                                        `tfsdk:"ip_http_client_secure_trustpoint"`
	IpHttpClientSourceInterface                            types.String                                        `tfsdk:"ip_http_client_source_interface"`
	IpHttpSecureActiveSessionModules                       types.String                                        `tfsdk:"ip_http_secure_active_session_modules"`
	IpHttpMaxConnections                                   types.Int64                                         `tfsdk:"ip_http_max_connections"`
	IpHttpActiveSessionModules                             types.String                                        `tfsdk:"ip_http_active_session_modules"`
	IpNameServers                                          types.List                                          `tfsdk:"ip_name_servers"`
	IpNameServersVrf                                       []SystemIpNameServersVrf                            `tfsdk:"ip_name_servers_vrf"`
	IpDomainLookupSourceInterfaceLoopback                  types.Int64                                         `tfsdk:"ip_domain_lookup_source_interface_loopback"`
	IpDomainLookupSourceInterfaceVlan                      types.Int64                                         `tfsdk:"ip_domain_lookup_source_interface_vlan"`
	IpDomainLookupSourceInterfaceGigabitEthernet           types.String                                        `tfsdk:"ip_domain_lookup_source_interface_gigabit_ethernet"`
	IpDomainLookupSourceInterfaceTwoGigabitEthernet        types.String                                        `tfsdk:"ip_domain_lookup_source_interface_two_gigabit_ethernet"`
	IpDomainLookupSourceInterfaceFiveGigabitEthernet       types.String                                        `tfsdk:"ip_domain_lookup_source_interface_five_gigabit_ethernet"`
	IpDomainLookupSourceInterfaceTenGigabitEthernet        types.String                                        `tfsdk:"ip_domain_lookup_source_interface_ten_gigabit_ethernet"`
	IpDomainLookupSourceInterfaceTwentyFiveGigabitEthernet types.String                                        `tfsdk:"ip_domain_lookup_source_interface_twenty_five_gigabit_ethernet"`
	IpDomainLookupSourceInterfaceFortyGigabitEthernet      types.String                                        `tfsdk:"ip_domain_lookup_source_interface_forty_gigabit_ethernet"`
	IpDomainLookupSourceInterfaceHundredGigabitEthernet    types.String                                        `tfsdk:"ip_domain_lookup_source_interface_hundred_gigabit_ethernet"`
	CispEnable                                             types.Bool                                          `tfsdk:"cisp_enable"`
	EpmLogging                                             types.Bool                                          `tfsdk:"epm_logging"`
	AccessSessionMacMoveDeny                               types.Bool                                          `tfsdk:"access_session_mac_move_deny"`
	DiagnosticBootupLevel                                  types.String                                        `tfsdk:"diagnostic_bootup_level"`
	MemoryFreeLowWatermarkProcessor                        types.Int64                                         `tfsdk:"memory_free_low_watermark_processor"`
	ArchivePath                                            types.String                                        `tfsdk:"archive_path"`
	ArchiveMaximum                                         types.Int64                                         `tfsdk:"archive_maximum"`
	ArchiveWriteMemory                                     types.Bool                                          `tfsdk:"archive_write_memory"`
	ArchiveTimePeriod                                      types.Int64                                         `tfsdk:"archive_time_period"`
	ArchiveLogConfigLoggingEnable                          types.Bool                                          `tfsdk:"archive_log_config_logging_enable"`
	ArchiveLogConfigLoggingSize                            types.Int64                                         `tfsdk:"archive_log_config_logging_size"`
	Redundancy                                             types.Bool                                          `tfsdk:"redundancy"`
	RedundancyMode                                         types.String                                        `tfsdk:"redundancy_mode"`
	TransceiverTypeAllMonitoring                           types.Bool                                          `tfsdk:"transceiver_type_all_monitoring"`
	IpForwardProtocolNd                                    types.Bool                                          `tfsdk:"ip_forward_protocol_nd"`
	IpScpServerEnable                                      types.Bool                                          `tfsdk:"ip_scp_server_enable"`
	IpSshVersion                                           types.String                                        `tfsdk:"ip_ssh_version"`
	IpSshVersionLegacy                                     types.Int64                                         `tfsdk:"ip_ssh_version_legacy"`
	IpSshTimeOut                                           types.Int64                                         `tfsdk:"ip_ssh_time_out"`
	IpSshAuthenticationRetries                             types.Int64                                         `tfsdk:"ip_ssh_authentication_retries"`
	IpSshSourceInterfaceLoopback                           types.Int64                                         `tfsdk:"ip_ssh_source_interface_loopback"`
	IpSshSourceInterfaceVlan                               types.Int64                                         `tfsdk:"ip_ssh_source_interface_vlan"`
	IpSshSourceInterfaceGigabitEthernet                    types.String                                        `tfsdk:"ip_ssh_source_interface_gigabit_ethernet"`
	IpSshSourceInterfaceTwoGigabitEthernet                 types.String                                        `tfsdk:"ip_ssh_source_interface_two_gigabit_ethernet"`
	IpSshSourceInterfaceFiveGigabitEthernet                types.String                                        `tfsdk:"ip_ssh_source_interface_five_gigabit_ethernet"`
	IpSshSourceInterfaceTenGigabitEthernet                 types.String                                        `tfsdk:"ip_ssh_source_interface_ten_gigabit_ethernet"`
	IpSshSourceInterfaceTwentyFiveGigabitEthernet          types.String                                        `tfsdk:"ip_ssh_source_interface_twenty_five_gigabit_ethernet"`
	IpSshSourceInterfaceFortyGigabitEthernet               types.String                                        `tfsdk:"ip_ssh_source_interface_forty_gigabit_ethernet"`
	IpSshSourceInterfaceHundredGigabitEthernet             types.String                                        `tfsdk:"ip_ssh_source_interface_hundred_gigabit_ethernet"`
	ControlPlaneServicePolicyInput                         types.String                                        `tfsdk:"control_plane_service_policy_input"`
	PnpProfiles                                            []SystemPnpProfiles                                 `tfsdk:"pnp_profiles"`
	IpTacacsSourceInterfaceLoopback                        types.Int64                                         `tfsdk:"ip_tacacs_source_interface_loopback"`
	IpTacacsSourceInterfaceVlan                            types.Int64                                         `tfsdk:"ip_tacacs_source_interface_vlan"`
	IpTacacsSourceInterfaceGigabitEthernet                 types.String                                        `tfsdk:"ip_tacacs_source_interface_gigabit_ethernet"`
	IpTacacsSourceInterfaceTwoGigabitEthernet              types.String                                        `tfsdk:"ip_tacacs_source_interface_two_gigabit_ethernet"`
	IpTacacsSourceInterfaceFiveGigabitEthernet             types.String                                        `tfsdk:"ip_tacacs_source_interface_five_gigabit_ethernet"`
	IpTacacsSourceInterfaceTenGigabitEthernet              types.String                                        `tfsdk:"ip_tacacs_source_interface_ten_gigabit_ethernet"`
	IpTacacsSourceInterfaceTwentyFiveGigabitEthernet       types.String                                        `tfsdk:"ip_tacacs_source_interface_twenty_five_gigabit_ethernet"`
	IpTacacsSourceInterfaceFortyGigabitEthernet            types.String                                        `tfsdk:"ip_tacacs_source_interface_forty_gigabit_ethernet"`
	IpTacacsSourceInterfaceHundredGigabitEthernet          types.String                                        `tfsdk:"ip_tacacs_source_interface_hundred_gigabit_ethernet"`
	IpTacacsSourceInterfaceVrf                             types.String                                        `tfsdk:"ip_tacacs_source_interface_vrf"`
	IpRadiusSourceInterfaceLoopback                        types.Int64                                         `tfsdk:"ip_radius_source_interface_loopback"`
	IpRadiusSourceInterfaceVlan                            types.Int64                                         `tfsdk:"ip_radius_source_interface_vlan"`
	IpRadiusSourceInterfaceGigabitEthernet                 types.String                                        `tfsdk:"ip_radius_source_interface_gigabit_ethernet"`
	IpRadiusSourceInterfaceTwoGigabitEthernet              types.String                                        `tfsdk:"ip_radius_source_interface_two_gigabit_ethernet"`
	IpRadiusSourceInterfaceFiveGigabitEthernet             types.String                                        `tfsdk:"ip_radius_source_interface_five_gigabit_ethernet"`
	IpRadiusSourceInterfaceTenGigabitEthernet              types.String                                        `tfsdk:"ip_radius_source_interface_ten_gigabit_ethernet"`
	IpRadiusSourceInterfaceTwentyFiveGigabitEthernet       types.String                                        `tfsdk:"ip_radius_source_interface_twenty_five_gigabit_ethernet"`
	IpRadiusSourceInterfaceFortyGigabitEthernet            types.String                                        `tfsdk:"ip_radius_source_interface_forty_gigabit_ethernet"`
	IpRadiusSourceInterfaceHundredGigabitEthernet          types.String                                        `tfsdk:"ip_radius_source_interface_hundred_gigabit_ethernet"`
	IpRadiusSourceInterfaceVrf                             types.String                                        `tfsdk:"ip_radius_source_interface_vrf"`
	BootSystemFlashFiles                                   []SystemBootSystemFlashFiles                        `tfsdk:"boot_system_flash_files"`
	BootSystemBootfiles                                    []SystemBootSystemBootfiles                         `tfsdk:"boot_system_bootfiles"`
	EnableSecret                                           types.String                                        `tfsdk:"enable_secret"`
	EnableSecretType                                       types.String                                        `tfsdk:"enable_secret_type"`
	EnableSecretLevel                                      types.Int64                                         `tfsdk:"enable_secret_level"`
	IpHosts                                                []SystemIpHosts                                     `tfsdk:"ip_hosts"`
	IpHostsVrf                                             []SystemIpHostsVrf                                  `tfsdk:"ip_hosts_vrf"`
	DiagnosticEventLogSize                                 types.Int64                                         `tfsdk:"diagnostic_event_log_size"`
	SubscriberTemplating                                   types.Bool                                          `tfsdk:"subscriber_templating"`
	CallHomeContactEmail                                   types.String                                        `tfsdk:"call_home_contact_email"`
	CallHomeCiscoTac1ProfileActive                         types.Bool                                          `tfsdk:"call_home_cisco_tac_1_profile_active"`
	CallHomeCiscoTac1DestinationTransportMethod            types.String                                        `tfsdk:"call_home_cisco_tac_1_destination_transport_method"`
	IpFtpPassive                                           types.Bool                                          `tfsdk:"ip_ftp_passive"`
	TftpSourceInterfaceGigabitEthernet                     types.String                                        `tfsdk:"tftp_source_interface_gigabit_ethernet"`
	TftpSourceInterfaceLoopback                            types.Int64                                         `tfsdk:"tftp_source_interface_loopback"`
	MultilinkPppBundleName                                 types.String                                        `tfsdk:"multilink_ppp_bundle_name"`
	Version                                                types.String                                        `tfsdk:"version"`
	TrackObjects                                           []SystemTrackObjects                                `tfsdk:"track_objects"`
	IpNbarClassificationDnsClassifyByDomain                types.Bool                                          `tfsdk:"ip_nbar_classification_dns_classify_by_domain"`
	IpMulticastRouteLimit                                  types.Int64                                         `tfsdk:"ip_multicast_route_limit"`
	SecurityPasswordsMinLength                             types.Int64                                         `tfsdk:"security_passwords_min_length"`
	IpDomainListNames                                      types.List                                          `tfsdk:"ip_domain_list_names"`
	IpDomainListVrfDomain                                  types.String                                        `tfsdk:"ip_domain_list_vrf_domain"`
	IpDomainListVrf                                        types.String                                        `tfsdk:"ip_domain_list_vrf"`
	EthernetCfmAlarmConfigDelay                            types.Int64                                         `tfsdk:"ethernet_cfm_alarm_config_delay"`
	EthernetCfmAlarmConfigReset                            types.Int64                                         `tfsdk:"ethernet_cfm_alarm_config_reset"`
	StandbyRedirects                                       types.Bool                                          `tfsdk:"standby_redirects"`
	StandbyRedirectsEnableDisable                          types.String                                        `tfsdk:"standby_redirects_enable_disable"`
}

type SystemData struct {
	Device                                                 types.String                                        `tfsdk:"device"`
	Id                                                     types.String                                        `tfsdk:"id"`
	Hostname                                               types.String                                        `tfsdk:"hostname"`
	IpBgpCommunityNewFormat                                types.Bool                                          `tfsdk:"ip_bgp_community_new_format"`
	IpRouting                                              types.Bool                                          `tfsdk:"ip_routing"`
	Ipv6UnicastRouting                                     types.Bool                                          `tfsdk:"ipv6_unicast_routing"`
	Mtu                                                    types.Int64                                         `tfsdk:"mtu"`
	IpSourceRoute                                          types.Bool                                          `tfsdk:"ip_source_route"`
	IpDomainLookup                                         types.Bool                                          `tfsdk:"ip_domain_lookup"`
	IpDomainName                                           types.String                                        `tfsdk:"ip_domain_name"`
	LoginDelay                                             types.Int64                                         `tfsdk:"login_delay"`
	LoginOnFailure                                         types.Bool                                          `tfsdk:"login_on_failure"`
	LoginOnFailureLog                                      types.Bool                                          `tfsdk:"login_on_failure_log"`
	LoginOnSuccess                                         types.Bool                                          `tfsdk:"login_on_success"`
	LoginOnSuccessLog                                      types.Bool                                          `tfsdk:"login_on_success_log"`
	IpMulticastRouting                                     types.Bool                                          `tfsdk:"ip_multicast_routing"`
	MulticastRoutingSwitch                                 types.Bool                                          `tfsdk:"multicast_routing_switch"`
	IpMulticastRoutingDistributed                          types.Bool                                          `tfsdk:"ip_multicast_routing_distributed"`
	MulticastRoutingVrfs                                   []SystemMulticastRoutingVrfs                        `tfsdk:"multicast_routing_vrfs"`
	IpHttpAccessClass                                      types.Int64                                         `tfsdk:"ip_http_access_class"`
	IpHttpAuthenticationAaa                                types.Bool                                          `tfsdk:"ip_http_authentication_aaa"`
	IpHttpAuthenticationAaaExecAuthorization               types.String                                        `tfsdk:"ip_http_authentication_aaa_exec_authorization"`
	IpHttpAuthenticationAaaLoginAuthentication             types.String                                        `tfsdk:"ip_http_authentication_aaa_login_authentication"`
	IpHttpAuthenticationAaaCommandAuthorization            []SystemIpHttpAuthenticationAaaCommandAuthorization `tfsdk:"ip_http_authentication_aaa_command_authorization"`
	IpHttpAuthenticationLocal                              types.Bool                                          `tfsdk:"ip_http_authentication_local"`
	IpHttpServer                                           types.Bool                                          `tfsdk:"ip_http_server"`
	IpHttpSecureServer                                     types.Bool                                          `tfsdk:"ip_http_secure_server"`
	IpHttpSecureTrustpoint                                 types.String                                        `tfsdk:"ip_http_secure_trustpoint"`
	IpHttpTlsVersion                                       types.String                                        `tfsdk:"ip_http_tls_version"`
	IpHttpClientSecureTrustpoint                           types.String                                        `tfsdk:"ip_http_client_secure_trustpoint"`
	IpHttpClientSourceInterface                            types.String                                        `tfsdk:"ip_http_client_source_interface"`
	IpHttpSecureActiveSessionModules                       types.String                                        `tfsdk:"ip_http_secure_active_session_modules"`
	IpHttpMaxConnections                                   types.Int64                                         `tfsdk:"ip_http_max_connections"`
	IpHttpActiveSessionModules                             types.String                                        `tfsdk:"ip_http_active_session_modules"`
	IpNameServers                                          types.List                                          `tfsdk:"ip_name_servers"`
	IpNameServersVrf                                       []SystemIpNameServersVrf                            `tfsdk:"ip_name_servers_vrf"`
	IpDomainLookupSourceInterfaceLoopback                  types.Int64                                         `tfsdk:"ip_domain_lookup_source_interface_loopback"`
	IpDomainLookupSourceInterfaceVlan                      types.Int64                                         `tfsdk:"ip_domain_lookup_source_interface_vlan"`
	IpDomainLookupSourceInterfaceGigabitEthernet           types.String                                        `tfsdk:"ip_domain_lookup_source_interface_gigabit_ethernet"`
	IpDomainLookupSourceInterfaceTwoGigabitEthernet        types.String                                        `tfsdk:"ip_domain_lookup_source_interface_two_gigabit_ethernet"`
	IpDomainLookupSourceInterfaceFiveGigabitEthernet       types.String                                        `tfsdk:"ip_domain_lookup_source_interface_five_gigabit_ethernet"`
	IpDomainLookupSourceInterfaceTenGigabitEthernet        types.String                                        `tfsdk:"ip_domain_lookup_source_interface_ten_gigabit_ethernet"`
	IpDomainLookupSourceInterfaceTwentyFiveGigabitEthernet types.String                                        `tfsdk:"ip_domain_lookup_source_interface_twenty_five_gigabit_ethernet"`
	IpDomainLookupSourceInterfaceFortyGigabitEthernet      types.String                                        `tfsdk:"ip_domain_lookup_source_interface_forty_gigabit_ethernet"`
	IpDomainLookupSourceInterfaceHundredGigabitEthernet    types.String                                        `tfsdk:"ip_domain_lookup_source_interface_hundred_gigabit_ethernet"`
	CispEnable                                             types.Bool                                          `tfsdk:"cisp_enable"`
	EpmLogging                                             types.Bool                                          `tfsdk:"epm_logging"`
	AccessSessionMacMoveDeny                               types.Bool                                          `tfsdk:"access_session_mac_move_deny"`
	DiagnosticBootupLevel                                  types.String                                        `tfsdk:"diagnostic_bootup_level"`
	MemoryFreeLowWatermarkProcessor                        types.Int64                                         `tfsdk:"memory_free_low_watermark_processor"`
	ArchivePath                                            types.String                                        `tfsdk:"archive_path"`
	ArchiveMaximum                                         types.Int64                                         `tfsdk:"archive_maximum"`
	ArchiveWriteMemory                                     types.Bool                                          `tfsdk:"archive_write_memory"`
	ArchiveTimePeriod                                      types.Int64                                         `tfsdk:"archive_time_period"`
	ArchiveLogConfigLoggingEnable                          types.Bool                                          `tfsdk:"archive_log_config_logging_enable"`
	ArchiveLogConfigLoggingSize                            types.Int64                                         `tfsdk:"archive_log_config_logging_size"`
	Redundancy                                             types.Bool                                          `tfsdk:"redundancy"`
	RedundancyMode                                         types.String                                        `tfsdk:"redundancy_mode"`
	TransceiverTypeAllMonitoring                           types.Bool                                          `tfsdk:"transceiver_type_all_monitoring"`
	IpForwardProtocolNd                                    types.Bool                                          `tfsdk:"ip_forward_protocol_nd"`
	IpScpServerEnable                                      types.Bool                                          `tfsdk:"ip_scp_server_enable"`
	IpSshVersion                                           types.String                                        `tfsdk:"ip_ssh_version"`
	IpSshVersionLegacy                                     types.Int64                                         `tfsdk:"ip_ssh_version_legacy"`
	IpSshTimeOut                                           types.Int64                                         `tfsdk:"ip_ssh_time_out"`
	IpSshAuthenticationRetries                             types.Int64                                         `tfsdk:"ip_ssh_authentication_retries"`
	IpSshSourceInterfaceLoopback                           types.Int64                                         `tfsdk:"ip_ssh_source_interface_loopback"`
	IpSshSourceInterfaceVlan                               types.Int64                                         `tfsdk:"ip_ssh_source_interface_vlan"`
	IpSshSourceInterfaceGigabitEthernet                    types.String                                        `tfsdk:"ip_ssh_source_interface_gigabit_ethernet"`
	IpSshSourceInterfaceTwoGigabitEthernet                 types.String                                        `tfsdk:"ip_ssh_source_interface_two_gigabit_ethernet"`
	IpSshSourceInterfaceFiveGigabitEthernet                types.String                                        `tfsdk:"ip_ssh_source_interface_five_gigabit_ethernet"`
	IpSshSourceInterfaceTenGigabitEthernet                 types.String                                        `tfsdk:"ip_ssh_source_interface_ten_gigabit_ethernet"`
	IpSshSourceInterfaceTwentyFiveGigabitEthernet          types.String                                        `tfsdk:"ip_ssh_source_interface_twenty_five_gigabit_ethernet"`
	IpSshSourceInterfaceFortyGigabitEthernet               types.String                                        `tfsdk:"ip_ssh_source_interface_forty_gigabit_ethernet"`
	IpSshSourceInterfaceHundredGigabitEthernet             types.String                                        `tfsdk:"ip_ssh_source_interface_hundred_gigabit_ethernet"`
	ControlPlaneServicePolicyInput                         types.String                                        `tfsdk:"control_plane_service_policy_input"`
	PnpProfiles                                            []SystemPnpProfiles                                 `tfsdk:"pnp_profiles"`
	IpTacacsSourceInterfaceLoopback                        types.Int64                                         `tfsdk:"ip_tacacs_source_interface_loopback"`
	IpTacacsSourceInterfaceVlan                            types.Int64                                         `tfsdk:"ip_tacacs_source_interface_vlan"`
	IpTacacsSourceInterfaceGigabitEthernet                 types.String                                        `tfsdk:"ip_tacacs_source_interface_gigabit_ethernet"`
	IpTacacsSourceInterfaceTwoGigabitEthernet              types.String                                        `tfsdk:"ip_tacacs_source_interface_two_gigabit_ethernet"`
	IpTacacsSourceInterfaceFiveGigabitEthernet             types.String                                        `tfsdk:"ip_tacacs_source_interface_five_gigabit_ethernet"`
	IpTacacsSourceInterfaceTenGigabitEthernet              types.String                                        `tfsdk:"ip_tacacs_source_interface_ten_gigabit_ethernet"`
	IpTacacsSourceInterfaceTwentyFiveGigabitEthernet       types.String                                        `tfsdk:"ip_tacacs_source_interface_twenty_five_gigabit_ethernet"`
	IpTacacsSourceInterfaceFortyGigabitEthernet            types.String                                        `tfsdk:"ip_tacacs_source_interface_forty_gigabit_ethernet"`
	IpTacacsSourceInterfaceHundredGigabitEthernet          types.String                                        `tfsdk:"ip_tacacs_source_interface_hundred_gigabit_ethernet"`
	IpTacacsSourceInterfaceVrf                             types.String                                        `tfsdk:"ip_tacacs_source_interface_vrf"`
	IpRadiusSourceInterfaceLoopback                        types.Int64                                         `tfsdk:"ip_radius_source_interface_loopback"`
	IpRadiusSourceInterfaceVlan                            types.Int64                                         `tfsdk:"ip_radius_source_interface_vlan"`
	IpRadiusSourceInterfaceGigabitEthernet                 types.String                                        `tfsdk:"ip_radius_source_interface_gigabit_ethernet"`
	IpRadiusSourceInterfaceTwoGigabitEthernet              types.String                                        `tfsdk:"ip_radius_source_interface_two_gigabit_ethernet"`
	IpRadiusSourceInterfaceFiveGigabitEthernet             types.String                                        `tfsdk:"ip_radius_source_interface_five_gigabit_ethernet"`
	IpRadiusSourceInterfaceTenGigabitEthernet              types.String                                        `tfsdk:"ip_radius_source_interface_ten_gigabit_ethernet"`
	IpRadiusSourceInterfaceTwentyFiveGigabitEthernet       types.String                                        `tfsdk:"ip_radius_source_interface_twenty_five_gigabit_ethernet"`
	IpRadiusSourceInterfaceFortyGigabitEthernet            types.String                                        `tfsdk:"ip_radius_source_interface_forty_gigabit_ethernet"`
	IpRadiusSourceInterfaceHundredGigabitEthernet          types.String                                        `tfsdk:"ip_radius_source_interface_hundred_gigabit_ethernet"`
	IpRadiusSourceInterfaceVrf                             types.String                                        `tfsdk:"ip_radius_source_interface_vrf"`
	BootSystemFlashFiles                                   []SystemBootSystemFlashFiles                        `tfsdk:"boot_system_flash_files"`
	BootSystemBootfiles                                    []SystemBootSystemBootfiles                         `tfsdk:"boot_system_bootfiles"`
	EnableSecret                                           types.String                                        `tfsdk:"enable_secret"`
	EnableSecretType                                       types.String                                        `tfsdk:"enable_secret_type"`
	EnableSecretLevel                                      types.Int64                                         `tfsdk:"enable_secret_level"`
	IpHosts                                                []SystemIpHosts                                     `tfsdk:"ip_hosts"`
	IpHostsVrf                                             []SystemIpHostsVrf                                  `tfsdk:"ip_hosts_vrf"`
	DiagnosticEventLogSize                                 types.Int64                                         `tfsdk:"diagnostic_event_log_size"`
	SubscriberTemplating                                   types.Bool                                          `tfsdk:"subscriber_templating"`
	CallHomeContactEmail                                   types.String                                        `tfsdk:"call_home_contact_email"`
	CallHomeCiscoTac1ProfileActive                         types.Bool                                          `tfsdk:"call_home_cisco_tac_1_profile_active"`
	CallHomeCiscoTac1DestinationTransportMethod            types.String                                        `tfsdk:"call_home_cisco_tac_1_destination_transport_method"`
	IpFtpPassive                                           types.Bool                                          `tfsdk:"ip_ftp_passive"`
	TftpSourceInterfaceGigabitEthernet                     types.String                                        `tfsdk:"tftp_source_interface_gigabit_ethernet"`
	TftpSourceInterfaceLoopback                            types.Int64                                         `tfsdk:"tftp_source_interface_loopback"`
	MultilinkPppBundleName                                 types.String                                        `tfsdk:"multilink_ppp_bundle_name"`
	Version                                                types.String                                        `tfsdk:"version"`
	TrackObjects                                           []SystemTrackObjects                                `tfsdk:"track_objects"`
	IpNbarClassificationDnsClassifyByDomain                types.Bool                                          `tfsdk:"ip_nbar_classification_dns_classify_by_domain"`
	IpMulticastRouteLimit                                  types.Int64                                         `tfsdk:"ip_multicast_route_limit"`
	SecurityPasswordsMinLength                             types.Int64                                         `tfsdk:"security_passwords_min_length"`
	IpDomainListNames                                      types.List                                          `tfsdk:"ip_domain_list_names"`
	IpDomainListVrfDomain                                  types.String                                        `tfsdk:"ip_domain_list_vrf_domain"`
	IpDomainListVrf                                        types.String                                        `tfsdk:"ip_domain_list_vrf"`
	EthernetCfmAlarmConfigDelay                            types.Int64                                         `tfsdk:"ethernet_cfm_alarm_config_delay"`
	EthernetCfmAlarmConfigReset                            types.Int64                                         `tfsdk:"ethernet_cfm_alarm_config_reset"`
	StandbyRedirects                                       types.Bool                                          `tfsdk:"standby_redirects"`
	StandbyRedirectsEnableDisable                          types.String                                        `tfsdk:"standby_redirects_enable_disable"`
}
type SystemMulticastRoutingVrfs struct {
	Vrf         types.String `tfsdk:"vrf"`
	Distributed types.Bool   `tfsdk:"distributed"`
}
type SystemIpHttpAuthenticationAaaCommandAuthorization struct {
	Level types.Int64  `tfsdk:"level"`
	Name  types.String `tfsdk:"name"`
}
type SystemIpNameServersVrf struct {
	Vrf     types.String `tfsdk:"vrf"`
	Servers types.List   `tfsdk:"servers"`
}
type SystemPnpProfiles struct {
	Name                          types.String `tfsdk:"name"`
	TransportHttpsIpv4Ipv4Address types.String `tfsdk:"transport_https_ipv4_ipv4_address"`
	TransportHttpsIpv4Port        types.Int64  `tfsdk:"transport_https_ipv4_port"`
}
type SystemBootSystemFlashFiles struct {
	Path types.String `tfsdk:"path"`
}
type SystemBootSystemBootfiles struct {
	Path types.String `tfsdk:"path"`
}
type SystemIpHosts struct {
	Name types.String `tfsdk:"name"`
	Ips  types.List   `tfsdk:"ips"`
}
type SystemIpHostsVrf struct {
	Vrf   types.String            `tfsdk:"vrf"`
	Hosts []SystemIpHostsVrfHosts `tfsdk:"hosts"`
}
type SystemTrackObjects struct {
	Number            types.String `tfsdk:"number"`
	IpSlaNumber       types.Int64  `tfsdk:"ip_sla_number"`
	IpSlaReachability types.Bool   `tfsdk:"ip_sla_reachability"`
}
type SystemIpHostsVrfHosts struct {
	Name types.String `tfsdk:"name"`
	Ips  types.List   `tfsdk:"ips"`
}

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

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

func (data System) getPath() string {
	return "Cisco-IOS-XE-native:native"
}

func (data SystemData) getPath() string {
	return "Cisco-IOS-XE-native:native"
}

// if last path element has a key -> remove it
func (data System) 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 System) toBody(ctx context.Context) string {
	body := `{"` + helpers.LastElement(data.getPath()) + `":{}}`
	if !data.Hostname.IsNull() && !data.Hostname.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"hostname", data.Hostname.ValueString())
	}
	if !data.IpBgpCommunityNewFormat.IsNull() && !data.IpBgpCommunityNewFormat.IsUnknown() {
		if data.IpBgpCommunityNewFormat.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.bgp-community.new-format", map[string]string{})
		}
	}
	if !data.IpRouting.IsNull() && !data.IpRouting.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.routing-conf.routing", data.IpRouting.ValueBool())
	}
	if !data.Ipv6UnicastRouting.IsNull() && !data.Ipv6UnicastRouting.IsUnknown() {
		if data.Ipv6UnicastRouting.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ipv6.unicast-routing", map[string]string{})
		}
	}
	if !data.Mtu.IsNull() && !data.Mtu.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"system.Cisco-IOS-XE-switch:mtu.size", strconv.FormatInt(data.Mtu.ValueInt64(), 10))
	}
	if !data.IpSourceRoute.IsNull() && !data.IpSourceRoute.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.source-route", data.IpSourceRoute.ValueBool())
	}
	if !data.IpDomainLookup.IsNull() && !data.IpDomainLookup.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.domain.lookup", data.IpDomainLookup.ValueBool())
	}
	if !data.IpDomainName.IsNull() && !data.IpDomainName.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.domain.name", data.IpDomainName.ValueString())
	}
	if !data.LoginDelay.IsNull() && !data.LoginDelay.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"login.delay", strconv.FormatInt(data.LoginDelay.ValueInt64(), 10))
	}
	if !data.LoginOnFailure.IsNull() && !data.LoginOnFailure.IsUnknown() {
		if data.LoginOnFailure.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"login.on-failure", map[string]string{})
		}
	}
	if !data.LoginOnFailureLog.IsNull() && !data.LoginOnFailureLog.IsUnknown() {
		if data.LoginOnFailureLog.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"login.on-failure.log", map[string]string{})
		}
	}
	if !data.LoginOnSuccess.IsNull() && !data.LoginOnSuccess.IsUnknown() {
		if data.LoginOnSuccess.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"login.on-success", map[string]string{})
		}
	}
	if !data.LoginOnSuccessLog.IsNull() && !data.LoginOnSuccessLog.IsUnknown() {
		if data.LoginOnSuccessLog.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"login.on-success.log", map[string]string{})
		}
	}
	if !data.IpMulticastRouting.IsNull() && !data.IpMulticastRouting.IsUnknown() {
		if data.IpMulticastRouting.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-multicast:multicast-routing", map[string]string{})
		}
	}
	if !data.MulticastRoutingSwitch.IsNull() && !data.MulticastRoutingSwitch.IsUnknown() {
		if data.MulticastRoutingSwitch.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-multicast:mcr-conf.multicast-routing", map[string]string{})
		}
	}
	if !data.IpMulticastRoutingDistributed.IsNull() && !data.IpMulticastRoutingDistributed.IsUnknown() {
		if data.IpMulticastRoutingDistributed.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-multicast:multicast-routing.distributed", map[string]string{})
		}
	}
	if !data.IpHttpAccessClass.IsNull() && !data.IpHttpAccessClass.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-http:http.access-class", strconv.FormatInt(data.IpHttpAccessClass.ValueInt64(), 10))
	}
	if !data.IpHttpAuthenticationAaa.IsNull() && !data.IpHttpAuthenticationAaa.IsUnknown() {
		if data.IpHttpAuthenticationAaa.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-http:http.authentication.aaa", map[string]string{})
		}
	}
	if !data.IpHttpAuthenticationAaaExecAuthorization.IsNull() && !data.IpHttpAuthenticationAaaExecAuthorization.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-http:http.authentication.aaa.exec-authorization", data.IpHttpAuthenticationAaaExecAuthorization.ValueString())
	}
	if !data.IpHttpAuthenticationAaaLoginAuthentication.IsNull() && !data.IpHttpAuthenticationAaaLoginAuthentication.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-http:http.authentication.aaa.login-authentication", data.IpHttpAuthenticationAaaLoginAuthentication.ValueString())
	}
	if !data.IpHttpAuthenticationLocal.IsNull() && !data.IpHttpAuthenticationLocal.IsUnknown() {
		if data.IpHttpAuthenticationLocal.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-http:http.authentication.local", map[string]string{})
		}
	}
	if !data.IpHttpServer.IsNull() && !data.IpHttpServer.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-http:http.server", data.IpHttpServer.ValueBool())
	}
	if !data.IpHttpSecureServer.IsNull() && !data.IpHttpSecureServer.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-http:http.secure-server", data.IpHttpSecureServer.ValueBool())
	}
	if !data.IpHttpSecureTrustpoint.IsNull() && !data.IpHttpSecureTrustpoint.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-http:http.secure-trustpoint", data.IpHttpSecureTrustpoint.ValueString())
	}
	if !data.IpHttpTlsVersion.IsNull() && !data.IpHttpTlsVersion.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-http:http.tls-version", data.IpHttpTlsVersion.ValueString())
	}
	if !data.IpHttpClientSecureTrustpoint.IsNull() && !data.IpHttpClientSecureTrustpoint.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-http:http.client.secure-trustpoint", data.IpHttpClientSecureTrustpoint.ValueString())
	}
	if !data.IpHttpClientSourceInterface.IsNull() && !data.IpHttpClientSourceInterface.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-http:http.client.source-interface", data.IpHttpClientSourceInterface.ValueString())
	}
	if !data.IpHttpSecureActiveSessionModules.IsNull() && !data.IpHttpSecureActiveSessionModules.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-http:http.secure-active-session-modules", data.IpHttpSecureActiveSessionModules.ValueString())
	}
	if !data.IpHttpMaxConnections.IsNull() && !data.IpHttpMaxConnections.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-http:http.max-connections", strconv.FormatInt(data.IpHttpMaxConnections.ValueInt64(), 10))
	}
	if !data.IpHttpActiveSessionModules.IsNull() && !data.IpHttpActiveSessionModules.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-http:http.active-session-modules", data.IpHttpActiveSessionModules.ValueString())
	}
	if !data.IpNameServers.IsNull() && !data.IpNameServers.IsUnknown() {
		var values []string
		data.IpNameServers.ElementsAs(ctx, &values, false)
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.name-server.no-vrf-ordered", values)
	}
	if !data.IpDomainLookupSourceInterfaceLoopback.IsNull() && !data.IpDomainLookupSourceInterfaceLoopback.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.domain.lookup-settings.lookup.source-interface.Loopback", strconv.FormatInt(data.IpDomainLookupSourceInterfaceLoopback.ValueInt64(), 10))
	}
	if !data.IpDomainLookupSourceInterfaceVlan.IsNull() && !data.IpDomainLookupSourceInterfaceVlan.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.domain.lookup-settings.lookup.source-interface.Vlan", strconv.FormatInt(data.IpDomainLookupSourceInterfaceVlan.ValueInt64(), 10))
	}
	if !data.IpDomainLookupSourceInterfaceGigabitEthernet.IsNull() && !data.IpDomainLookupSourceInterfaceGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.domain.lookup-settings.lookup.source-interface.GigabitEthernet", data.IpDomainLookupSourceInterfaceGigabitEthernet.ValueString())
	}
	if !data.IpDomainLookupSourceInterfaceTwoGigabitEthernet.IsNull() && !data.IpDomainLookupSourceInterfaceTwoGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.domain.lookup-settings.lookup.source-interface.TwoGigabitEthernet", data.IpDomainLookupSourceInterfaceTwoGigabitEthernet.ValueString())
	}
	if !data.IpDomainLookupSourceInterfaceFiveGigabitEthernet.IsNull() && !data.IpDomainLookupSourceInterfaceFiveGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.domain.lookup-settings.lookup.source-interface.FiveGigabitEthernet", data.IpDomainLookupSourceInterfaceFiveGigabitEthernet.ValueString())
	}
	if !data.IpDomainLookupSourceInterfaceTenGigabitEthernet.IsNull() && !data.IpDomainLookupSourceInterfaceTenGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.domain.lookup-settings.lookup.source-interface.TenGigabitEthernet", data.IpDomainLookupSourceInterfaceTenGigabitEthernet.ValueString())
	}
	if !data.IpDomainLookupSourceInterfaceTwentyFiveGigabitEthernet.IsNull() && !data.IpDomainLookupSourceInterfaceTwentyFiveGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.domain.lookup-settings.lookup.source-interface.TwentyFiveGigE", data.IpDomainLookupSourceInterfaceTwentyFiveGigabitEthernet.ValueString())
	}
	if !data.IpDomainLookupSourceInterfaceFortyGigabitEthernet.IsNull() && !data.IpDomainLookupSourceInterfaceFortyGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.domain.lookup-settings.lookup.source-interface.FortyGigabitEthernet", data.IpDomainLookupSourceInterfaceFortyGigabitEthernet.ValueString())
	}
	if !data.IpDomainLookupSourceInterfaceHundredGigabitEthernet.IsNull() && !data.IpDomainLookupSourceInterfaceHundredGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.domain.lookup-settings.lookup.source-interface.HundredGigE", data.IpDomainLookupSourceInterfaceHundredGigabitEthernet.ValueString())
	}
	if !data.CispEnable.IsNull() && !data.CispEnable.IsUnknown() {
		if data.CispEnable.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"cisp.enable", map[string]string{})
		}
	}
	if !data.EpmLogging.IsNull() && !data.EpmLogging.IsUnknown() {
		if data.EpmLogging.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"epm.logging", map[string]string{})
		}
	}
	if !data.AccessSessionMacMoveDeny.IsNull() && !data.AccessSessionMacMoveDeny.IsUnknown() {
		if data.AccessSessionMacMoveDeny.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-sanet:access-session.mac-move.deny", map[string]string{})
		}
	}
	if !data.DiagnosticBootupLevel.IsNull() && !data.DiagnosticBootupLevel.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-diagnostics:diagnostic.bootup.level", data.DiagnosticBootupLevel.ValueString())
	}
	if !data.MemoryFreeLowWatermarkProcessor.IsNull() && !data.MemoryFreeLowWatermarkProcessor.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"memory.free.low-watermark.processor", strconv.FormatInt(data.MemoryFreeLowWatermarkProcessor.ValueInt64(), 10))
	}
	if !data.ArchivePath.IsNull() && !data.ArchivePath.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"archive.path", data.ArchivePath.ValueString())
	}
	if !data.ArchiveMaximum.IsNull() && !data.ArchiveMaximum.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"archive.maximum", strconv.FormatInt(data.ArchiveMaximum.ValueInt64(), 10))
	}
	if !data.ArchiveWriteMemory.IsNull() && !data.ArchiveWriteMemory.IsUnknown() {
		if data.ArchiveWriteMemory.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"archive.write-memory", map[string]string{})
		}
	}
	if !data.ArchiveTimePeriod.IsNull() && !data.ArchiveTimePeriod.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"archive.time-period", strconv.FormatInt(data.ArchiveTimePeriod.ValueInt64(), 10))
	}
	if !data.ArchiveLogConfigLoggingEnable.IsNull() && !data.ArchiveLogConfigLoggingEnable.IsUnknown() {
		if data.ArchiveLogConfigLoggingEnable.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"archive.log.config.logging.enable", map[string]string{})
		}
	}
	if !data.ArchiveLogConfigLoggingSize.IsNull() && !data.ArchiveLogConfigLoggingSize.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"archive.log.config.logging.size", strconv.FormatInt(data.ArchiveLogConfigLoggingSize.ValueInt64(), 10))
	}
	if !data.Redundancy.IsNull() && !data.Redundancy.IsUnknown() {
		if data.Redundancy.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"redundancy", map[string]string{})
		}
	}
	if !data.RedundancyMode.IsNull() && !data.RedundancyMode.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"redundancy.mode", data.RedundancyMode.ValueString())
	}
	if !data.TransceiverTypeAllMonitoring.IsNull() && !data.TransceiverTypeAllMonitoring.IsUnknown() {
		if data.TransceiverTypeAllMonitoring.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"transceivers.type.all.monitoring-enable.monitoring", map[string]string{})
		}
	}
	if !data.IpForwardProtocolNd.IsNull() && !data.IpForwardProtocolNd.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.forward-protocol-v2.nd", data.IpForwardProtocolNd.ValueBool())
	}
	if !data.IpScpServerEnable.IsNull() && !data.IpScpServerEnable.IsUnknown() {
		if data.IpScpServerEnable.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.scp.server.enable", map[string]string{})
		}
	}
	if !data.IpSshVersion.IsNull() && !data.IpSshVersion.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.ssh.ssh-version", data.IpSshVersion.ValueString())
	}
	if !data.IpSshVersionLegacy.IsNull() && !data.IpSshVersionLegacy.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.ssh.version", strconv.FormatInt(data.IpSshVersionLegacy.ValueInt64(), 10))
	}
	if !data.IpSshTimeOut.IsNull() && !data.IpSshTimeOut.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.ssh.time-out", strconv.FormatInt(data.IpSshTimeOut.ValueInt64(), 10))
	}
	if !data.IpSshAuthenticationRetries.IsNull() && !data.IpSshAuthenticationRetries.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.ssh.authentication-retries", strconv.FormatInt(data.IpSshAuthenticationRetries.ValueInt64(), 10))
	}
	if !data.IpSshSourceInterfaceLoopback.IsNull() && !data.IpSshSourceInterfaceLoopback.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.ssh.source-interface-config.Loopback", strconv.FormatInt(data.IpSshSourceInterfaceLoopback.ValueInt64(), 10))
	}
	if !data.IpSshSourceInterfaceVlan.IsNull() && !data.IpSshSourceInterfaceVlan.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.ssh.source-interface-config.Vlan", strconv.FormatInt(data.IpSshSourceInterfaceVlan.ValueInt64(), 10))
	}
	if !data.IpSshSourceInterfaceGigabitEthernet.IsNull() && !data.IpSshSourceInterfaceGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.ssh.source-interface-config.GigabitEthernet", data.IpSshSourceInterfaceGigabitEthernet.ValueString())
	}
	if !data.IpSshSourceInterfaceTwoGigabitEthernet.IsNull() && !data.IpSshSourceInterfaceTwoGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.ssh.source-interface-config.TwoGigabitEthernet", data.IpSshSourceInterfaceTwoGigabitEthernet.ValueString())
	}
	if !data.IpSshSourceInterfaceFiveGigabitEthernet.IsNull() && !data.IpSshSourceInterfaceFiveGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.ssh.source-interface-config.FiveGigabitEthernet", data.IpSshSourceInterfaceFiveGigabitEthernet.ValueString())
	}
	if !data.IpSshSourceInterfaceTenGigabitEthernet.IsNull() && !data.IpSshSourceInterfaceTenGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.ssh.source-interface-config.TenGigabitEthernet", data.IpSshSourceInterfaceTenGigabitEthernet.ValueString())
	}
	if !data.IpSshSourceInterfaceTwentyFiveGigabitEthernet.IsNull() && !data.IpSshSourceInterfaceTwentyFiveGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.ssh.source-interface-config.TwentyFiveGigE", data.IpSshSourceInterfaceTwentyFiveGigabitEthernet.ValueString())
	}
	if !data.IpSshSourceInterfaceFortyGigabitEthernet.IsNull() && !data.IpSshSourceInterfaceFortyGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.ssh.source-interface-config.FortyGigabitEthernet", data.IpSshSourceInterfaceFortyGigabitEthernet.ValueString())
	}
	if !data.IpSshSourceInterfaceHundredGigabitEthernet.IsNull() && !data.IpSshSourceInterfaceHundredGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.ssh.source-interface-config.HundredGigE", data.IpSshSourceInterfaceHundredGigabitEthernet.ValueString())
	}
	if !data.ControlPlaneServicePolicyInput.IsNull() && !data.ControlPlaneServicePolicyInput.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"control-plane.Cisco-IOS-XE-policy:service-policy.input", data.ControlPlaneServicePolicyInput.ValueString())
	}
	if !data.IpTacacsSourceInterfaceLoopback.IsNull() && !data.IpTacacsSourceInterfaceLoopback.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-aaa:tacacs.source-interface.Loopback", strconv.FormatInt(data.IpTacacsSourceInterfaceLoopback.ValueInt64(), 10))
	}
	if !data.IpTacacsSourceInterfaceVlan.IsNull() && !data.IpTacacsSourceInterfaceVlan.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-aaa:tacacs.source-interface.Vlan", strconv.FormatInt(data.IpTacacsSourceInterfaceVlan.ValueInt64(), 10))
	}
	if !data.IpTacacsSourceInterfaceGigabitEthernet.IsNull() && !data.IpTacacsSourceInterfaceGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-aaa:tacacs.source-interface.GigabitEthernet", data.IpTacacsSourceInterfaceGigabitEthernet.ValueString())
	}
	if !data.IpTacacsSourceInterfaceTwoGigabitEthernet.IsNull() && !data.IpTacacsSourceInterfaceTwoGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-aaa:tacacs.source-interface.TwoGigabitEthernet", data.IpTacacsSourceInterfaceTwoGigabitEthernet.ValueString())
	}
	if !data.IpTacacsSourceInterfaceFiveGigabitEthernet.IsNull() && !data.IpTacacsSourceInterfaceFiveGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-aaa:tacacs.source-interface.FiveGigabitEthernet", data.IpTacacsSourceInterfaceFiveGigabitEthernet.ValueString())
	}
	if !data.IpTacacsSourceInterfaceTenGigabitEthernet.IsNull() && !data.IpTacacsSourceInterfaceTenGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-aaa:tacacs.source-interface.TenGigabitEthernet", data.IpTacacsSourceInterfaceTenGigabitEthernet.ValueString())
	}
	if !data.IpTacacsSourceInterfaceTwentyFiveGigabitEthernet.IsNull() && !data.IpTacacsSourceInterfaceTwentyFiveGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-aaa:tacacs.source-interface.TwentyFiveGigE", data.IpTacacsSourceInterfaceTwentyFiveGigabitEthernet.ValueString())
	}
	if !data.IpTacacsSourceInterfaceFortyGigabitEthernet.IsNull() && !data.IpTacacsSourceInterfaceFortyGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-aaa:tacacs.source-interface.FortyGigabitEthernet", data.IpTacacsSourceInterfaceFortyGigabitEthernet.ValueString())
	}
	if !data.IpTacacsSourceInterfaceHundredGigabitEthernet.IsNull() && !data.IpTacacsSourceInterfaceHundredGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-aaa:tacacs.source-interface.HundredGigE", data.IpTacacsSourceInterfaceHundredGigabitEthernet.ValueString())
	}
	if !data.IpTacacsSourceInterfaceVrf.IsNull() && !data.IpTacacsSourceInterfaceVrf.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-aaa:tacacs.source-interface.vrf", data.IpTacacsSourceInterfaceVrf.ValueString())
	}
	if !data.IpRadiusSourceInterfaceLoopback.IsNull() && !data.IpRadiusSourceInterfaceLoopback.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-aaa:radius.source-interface.Loopback", strconv.FormatInt(data.IpRadiusSourceInterfaceLoopback.ValueInt64(), 10))
	}
	if !data.IpRadiusSourceInterfaceVlan.IsNull() && !data.IpRadiusSourceInterfaceVlan.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-aaa:radius.source-interface.Vlan", strconv.FormatInt(data.IpRadiusSourceInterfaceVlan.ValueInt64(), 10))
	}
	if !data.IpRadiusSourceInterfaceGigabitEthernet.IsNull() && !data.IpRadiusSourceInterfaceGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-aaa:radius.source-interface.GigabitEthernet", data.IpRadiusSourceInterfaceGigabitEthernet.ValueString())
	}
	if !data.IpRadiusSourceInterfaceTwoGigabitEthernet.IsNull() && !data.IpRadiusSourceInterfaceTwoGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-aaa:radius.source-interface.TwoGigabitEthernet", data.IpRadiusSourceInterfaceTwoGigabitEthernet.ValueString())
	}
	if !data.IpRadiusSourceInterfaceFiveGigabitEthernet.IsNull() && !data.IpRadiusSourceInterfaceFiveGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-aaa:radius.source-interface.FiveGigabitEthernet", data.IpRadiusSourceInterfaceFiveGigabitEthernet.ValueString())
	}
	if !data.IpRadiusSourceInterfaceTenGigabitEthernet.IsNull() && !data.IpRadiusSourceInterfaceTenGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-aaa:radius.source-interface.TenGigabitEthernet", data.IpRadiusSourceInterfaceTenGigabitEthernet.ValueString())
	}
	if !data.IpRadiusSourceInterfaceTwentyFiveGigabitEthernet.IsNull() && !data.IpRadiusSourceInterfaceTwentyFiveGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-aaa:radius.source-interface.TwentyFiveGigE", data.IpRadiusSourceInterfaceTwentyFiveGigabitEthernet.ValueString())
	}
	if !data.IpRadiusSourceInterfaceFortyGigabitEthernet.IsNull() && !data.IpRadiusSourceInterfaceFortyGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-aaa:radius.source-interface.FortyGigabitEthernet", data.IpRadiusSourceInterfaceFortyGigabitEthernet.ValueString())
	}
	if !data.IpRadiusSourceInterfaceHundredGigabitEthernet.IsNull() && !data.IpRadiusSourceInterfaceHundredGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-aaa:radius.source-interface.HundredGigE", data.IpRadiusSourceInterfaceHundredGigabitEthernet.ValueString())
	}
	if !data.IpRadiusSourceInterfaceVrf.IsNull() && !data.IpRadiusSourceInterfaceVrf.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-aaa:radius.source-interface.vrf", data.IpRadiusSourceInterfaceVrf.ValueString())
	}
	if !data.EnableSecret.IsNull() && !data.EnableSecret.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"enable.secret.secret", data.EnableSecret.ValueString())
	}
	if !data.EnableSecretType.IsNull() && !data.EnableSecretType.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"enable.secret.type", data.EnableSecretType.ValueString())
	}
	if !data.EnableSecretLevel.IsNull() && !data.EnableSecretLevel.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"enable.secret.level", strconv.FormatInt(data.EnableSecretLevel.ValueInt64(), 10))
	}
	if !data.DiagnosticEventLogSize.IsNull() && !data.DiagnosticEventLogSize.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-diagnostics:diagnostic.event-log.size", strconv.FormatInt(data.DiagnosticEventLogSize.ValueInt64(), 10))
	}
	if !data.SubscriberTemplating.IsNull() && !data.SubscriberTemplating.IsUnknown() {
		if data.SubscriberTemplating.ValueBool() {
			body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"subscriber.templating", map[string]string{})
		}
	}
	if !data.CallHomeContactEmail.IsNull() && !data.CallHomeContactEmail.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"call-home.Cisco-IOS-XE-call-home:contact-email-addr", data.CallHomeContactEmail.ValueString())
	}
	if !data.CallHomeCiscoTac1ProfileActive.IsNull() && !data.CallHomeCiscoTac1ProfileActive.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"call-home.Cisco-IOS-XE-call-home:tac-profile.profile.CiscoTAC-1.active", data.CallHomeCiscoTac1ProfileActive.ValueBool())
	}
	if !data.CallHomeCiscoTac1DestinationTransportMethod.IsNull() && !data.CallHomeCiscoTac1DestinationTransportMethod.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"call-home.Cisco-IOS-XE-call-home:tac-profile.profile.CiscoTAC-1.destination.transport-method", data.CallHomeCiscoTac1DestinationTransportMethod.ValueString())
	}
	if !data.IpFtpPassive.IsNull() && !data.IpFtpPassive.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.ftp.passive-enable", data.IpFtpPassive.ValueBool())
	}
	if !data.TftpSourceInterfaceGigabitEthernet.IsNull() && !data.TftpSourceInterfaceGigabitEthernet.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.tftp.source-interface.GigabitEthernet", data.TftpSourceInterfaceGigabitEthernet.ValueString())
	}
	if !data.TftpSourceInterfaceLoopback.IsNull() && !data.TftpSourceInterfaceLoopback.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.tftp.source-interface.Loopback", strconv.FormatInt(data.TftpSourceInterfaceLoopback.ValueInt64(), 10))
	}
	if !data.MultilinkPppBundleName.IsNull() && !data.MultilinkPppBundleName.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"multilink.Cisco-IOS-XE-ppp:bundle-name", data.MultilinkPppBundleName.ValueString())
	}
	if !data.Version.IsNull() && !data.Version.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"version", data.Version.ValueString())
	}
	if !data.IpNbarClassificationDnsClassifyByDomain.IsNull() && !data.IpNbarClassificationDnsClassifyByDomain.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-nbar:nbar.classification.dns.classify-by-domain-with-default", data.IpNbarClassificationDnsClassifyByDomain.ValueBool())
	}
	if !data.IpMulticastRouteLimit.IsNull() && !data.IpMulticastRouteLimit.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.multicast.Cisco-IOS-XE-multicast:route-limit-container.routelimit", strconv.FormatInt(data.IpMulticastRouteLimit.ValueInt64(), 10))
	}
	if !data.SecurityPasswordsMinLength.IsNull() && !data.SecurityPasswordsMinLength.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-aaa:security.passwords.min-length", strconv.FormatInt(data.SecurityPasswordsMinLength.ValueInt64(), 10))
	}
	if !data.IpDomainListNames.IsNull() && !data.IpDomainListNames.IsUnknown() {
		var values []string
		data.IpDomainListNames.ElementsAs(ctx, &values, false)
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.domain.list.domain-name", values)
	}
	if !data.IpDomainListVrfDomain.IsNull() && !data.IpDomainListVrfDomain.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.domain.list.vrf.domain-name", data.IpDomainListVrfDomain.ValueString())
	}
	if !data.IpDomainListVrf.IsNull() && !data.IpDomainListVrf.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.domain.list.vrf.vrf-name", data.IpDomainListVrf.ValueString())
	}
	if !data.EthernetCfmAlarmConfigDelay.IsNull() && !data.EthernetCfmAlarmConfigDelay.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ethernet.Cisco-IOS-XE-ethernet:cfm.alarm-config.delay", strconv.FormatInt(data.EthernetCfmAlarmConfigDelay.ValueInt64(), 10))
	}
	if !data.EthernetCfmAlarmConfigReset.IsNull() && !data.EthernetCfmAlarmConfigReset.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ethernet.Cisco-IOS-XE-ethernet:cfm.alarm-config.reset", strconv.FormatInt(data.EthernetCfmAlarmConfigReset.ValueInt64(), 10))
	}
	if !data.StandbyRedirects.IsNull() && !data.StandbyRedirects.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"standby.redirects-config.redirects", data.StandbyRedirects.ValueBool())
	}
	if !data.StandbyRedirectsEnableDisable.IsNull() && !data.StandbyRedirectsEnableDisable.IsUnknown() {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"standby.redirects-config.redirect-enable-disable.redirects", data.StandbyRedirectsEnableDisable.ValueString())
	}
	if len(data.MulticastRoutingVrfs) > 0 {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-multicast:multicast-routing.vrf", []interface{}{})
		for index, item := range data.MulticastRoutingVrfs {
			if !item.Vrf.IsNull() && !item.Vrf.IsUnknown() {
				body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-multicast:multicast-routing.vrf"+"."+strconv.Itoa(index)+"."+"name", item.Vrf.ValueString())
			}
			if !item.Distributed.IsNull() && !item.Distributed.IsUnknown() {
				if item.Distributed.ValueBool() {
					body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-multicast:multicast-routing.vrf"+"."+strconv.Itoa(index)+"."+"distributed", map[string]string{})
				}
			}
		}
	}
	if len(data.IpHttpAuthenticationAaaCommandAuthorization) > 0 {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-http:http.authentication.aaa.command-authorization", []interface{}{})
		for index, item := range data.IpHttpAuthenticationAaaCommandAuthorization {
			if !item.Level.IsNull() && !item.Level.IsUnknown() {
				body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-http:http.authentication.aaa.command-authorization"+"."+strconv.Itoa(index)+"."+"level", strconv.FormatInt(item.Level.ValueInt64(), 10))
			}
			if !item.Name.IsNull() && !item.Name.IsUnknown() {
				body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.Cisco-IOS-XE-http:http.authentication.aaa.command-authorization"+"."+strconv.Itoa(index)+"."+"name", item.Name.ValueString())
			}
		}
	}
	if len(data.IpNameServersVrf) > 0 {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.name-server.vrf", []interface{}{})
		for index, item := range data.IpNameServersVrf {
			if !item.Vrf.IsNull() && !item.Vrf.IsUnknown() {
				body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.name-server.vrf"+"."+strconv.Itoa(index)+"."+"word", item.Vrf.ValueString())
			}
			if !item.Servers.IsNull() && !item.Servers.IsUnknown() {
				var values []string
				item.Servers.ElementsAs(ctx, &values, false)
				body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.name-server.vrf"+"."+strconv.Itoa(index)+"."+"server-ip-list-ordered", values)
			}
		}
	}
	if len(data.PnpProfiles) > 0 {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-pnp:pnp.profile", []interface{}{})
		for index, item := range data.PnpProfiles {
			if !item.Name.IsNull() && !item.Name.IsUnknown() {
				body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-pnp:pnp.profile"+"."+strconv.Itoa(index)+"."+"name", item.Name.ValueString())
			}
			if !item.TransportHttpsIpv4Ipv4Address.IsNull() && !item.TransportHttpsIpv4Ipv4Address.IsUnknown() {
				body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-pnp:pnp.profile"+"."+strconv.Itoa(index)+"."+"transport.https.ipv4.ipv4-address", item.TransportHttpsIpv4Ipv4Address.ValueString())
			}
			if !item.TransportHttpsIpv4Port.IsNull() && !item.TransportHttpsIpv4Port.IsUnknown() {
				body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-pnp:pnp.profile"+"."+strconv.Itoa(index)+"."+"transport.https.ipv4.port", strconv.FormatInt(item.TransportHttpsIpv4Port.ValueInt64(), 10))
			}
		}
	}
	if len(data.BootSystemFlashFiles) > 0 {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"boot.system.flash.flash-list-ordered-by-user", []interface{}{})
		for index, item := range data.BootSystemFlashFiles {
			if !item.Path.IsNull() && !item.Path.IsUnknown() {
				body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"boot.system.flash.flash-list-ordered-by-user"+"."+strconv.Itoa(index)+"."+"flash-leaf", item.Path.ValueString())
			}
		}
	}
	if len(data.BootSystemBootfiles) > 0 {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"boot.system.bootfile.filename-list-ordered-by-user", []interface{}{})
		for index, item := range data.BootSystemBootfiles {
			if !item.Path.IsNull() && !item.Path.IsUnknown() {
				body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"boot.system.bootfile.filename-list-ordered-by-user"+"."+strconv.Itoa(index)+"."+"filename", item.Path.ValueString())
			}
		}
	}
	if len(data.IpHosts) > 0 {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.host.host-list", []interface{}{})
		for index, item := range data.IpHosts {
			if !item.Name.IsNull() && !item.Name.IsUnknown() {
				body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.host.host-list"+"."+strconv.Itoa(index)+"."+"name", item.Name.ValueString())
			}
			if !item.Ips.IsNull() && !item.Ips.IsUnknown() {
				var values []string
				item.Ips.ElementsAs(ctx, &values, false)
				body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.host.host-list"+"."+strconv.Itoa(index)+"."+"ip-list-ordered", values)
			}
		}
	}
	if len(data.IpHostsVrf) > 0 {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.host.vrf", []interface{}{})
		for index, item := range data.IpHostsVrf {
			if !item.Vrf.IsNull() && !item.Vrf.IsUnknown() {
				body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.host.vrf"+"."+strconv.Itoa(index)+"."+"vrf-name", item.Vrf.ValueString())
			}
			if len(item.Hosts) > 0 {
				body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.host.vrf"+"."+strconv.Itoa(index)+"."+"host-name", []interface{}{})
				for cindex, citem := range item.Hosts {
					if !citem.Name.IsNull() && !citem.Name.IsUnknown() {
						body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.host.vrf"+"."+strconv.Itoa(index)+"."+"host-name"+"."+strconv.Itoa(cindex)+"."+"host-name", citem.Name.ValueString())
					}
					if !citem.Ips.IsNull() && !citem.Ips.IsUnknown() {
						var values []string
						citem.Ips.ElementsAs(ctx, &values, false)
						body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.host.vrf"+"."+strconv.Itoa(index)+"."+"host-name"+"."+strconv.Itoa(cindex)+"."+"ip-list", values)
					}
				}
			}
		}
	}
	if len(data.TrackObjects) > 0 {
		body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"track.Cisco-IOS-XE-track:tracked-object-v2", []interface{}{})
		for index, item := range data.TrackObjects {
			if !item.Number.IsNull() && !item.Number.IsUnknown() {
				body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"track.Cisco-IOS-XE-track:tracked-object-v2"+"."+strconv.Itoa(index)+"."+"object-number", item.Number.ValueString())
			}
			if !item.IpSlaNumber.IsNull() && !item.IpSlaNumber.IsUnknown() {
				body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"track.Cisco-IOS-XE-track:tracked-object-v2"+"."+strconv.Itoa(index)+"."+"ip.sla.number", strconv.FormatInt(item.IpSlaNumber.ValueInt64(), 10))
			}
			if !item.IpSlaReachability.IsNull() && !item.IpSlaReachability.IsUnknown() {
				if item.IpSlaReachability.ValueBool() {
					body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"track.Cisco-IOS-XE-track:tracked-object-v2"+"."+strconv.Itoa(index)+"."+"ip.sla.reachability", map[string]string{})
				}
			}
		}
	}
	return body
}

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

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

func (data *System) 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 + "hostname"); value.Exists() && !data.Hostname.IsNull() {
		data.Hostname = types.StringValue(value.String())
	} else {
		data.Hostname = types.StringNull()
	}
	if value := res.Get(prefix + "ip.bgp-community.new-format"); !data.IpBgpCommunityNewFormat.IsNull() {
		if value.Exists() {
			data.IpBgpCommunityNewFormat = types.BoolValue(true)
		} else {
			data.IpBgpCommunityNewFormat = types.BoolValue(false)
		}
	} else {
		data.IpBgpCommunityNewFormat = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.routing-conf.routing"); !data.IpRouting.IsNull() {
		if value.Exists() {
			data.IpRouting = types.BoolValue(value.Bool())
		}
	} else {
		data.IpRouting = types.BoolNull()
	}
	if value := res.Get(prefix + "ipv6.unicast-routing"); !data.Ipv6UnicastRouting.IsNull() {
		if value.Exists() {
			data.Ipv6UnicastRouting = types.BoolValue(true)
		} else {
			data.Ipv6UnicastRouting = types.BoolValue(false)
		}
	} else {
		data.Ipv6UnicastRouting = types.BoolNull()
	}
	if value := res.Get(prefix + "system.Cisco-IOS-XE-switch:mtu.size"); value.Exists() && !data.Mtu.IsNull() {
		data.Mtu = types.Int64Value(value.Int())
	} else {
		data.Mtu = types.Int64Null()
	}
	if value := res.Get(prefix + "ip.source-route"); !data.IpSourceRoute.IsNull() {
		if value.Exists() {
			data.IpSourceRoute = types.BoolValue(value.Bool())
		}
	} else {
		data.IpSourceRoute = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.domain.lookup"); !data.IpDomainLookup.IsNull() {
		if value.Exists() {
			data.IpDomainLookup = types.BoolValue(value.Bool())
		}
	} else {
		data.IpDomainLookup = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.domain.name"); value.Exists() && !data.IpDomainName.IsNull() {
		data.IpDomainName = types.StringValue(value.String())
	} else {
		data.IpDomainName = types.StringNull()
	}
	if value := res.Get(prefix + "login.delay"); value.Exists() && !data.LoginDelay.IsNull() {
		data.LoginDelay = types.Int64Value(value.Int())
	} else {
		data.LoginDelay = types.Int64Null()
	}
	if value := res.Get(prefix + "login.on-failure"); !data.LoginOnFailure.IsNull() {
		if value.Exists() {
			data.LoginOnFailure = types.BoolValue(true)
		} else {
			data.LoginOnFailure = types.BoolValue(false)
		}
	} else {
		data.LoginOnFailure = types.BoolNull()
	}
	if value := res.Get(prefix + "login.on-failure.log"); !data.LoginOnFailureLog.IsNull() {
		if value.Exists() {
			data.LoginOnFailureLog = types.BoolValue(true)
		} else {
			data.LoginOnFailureLog = types.BoolValue(false)
		}
	} else {
		data.LoginOnFailureLog = types.BoolNull()
	}
	if value := res.Get(prefix + "login.on-success"); !data.LoginOnSuccess.IsNull() {
		if value.Exists() {
			data.LoginOnSuccess = types.BoolValue(true)
		} else {
			data.LoginOnSuccess = types.BoolValue(false)
		}
	} else {
		data.LoginOnSuccess = types.BoolNull()
	}
	if value := res.Get(prefix + "login.on-success.log"); !data.LoginOnSuccessLog.IsNull() {
		if value.Exists() {
			data.LoginOnSuccessLog = types.BoolValue(true)
		} else {
			data.LoginOnSuccessLog = types.BoolValue(false)
		}
	} else {
		data.LoginOnSuccessLog = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-multicast:multicast-routing"); !data.IpMulticastRouting.IsNull() {
		if value.Exists() {
			data.IpMulticastRouting = types.BoolValue(true)
		} else {
			data.IpMulticastRouting = types.BoolValue(false)
		}
	} else {
		data.IpMulticastRouting = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-multicast:mcr-conf.multicast-routing"); !data.MulticastRoutingSwitch.IsNull() {
		if value.Exists() {
			data.MulticastRoutingSwitch = types.BoolValue(true)
		} else {
			data.MulticastRoutingSwitch = types.BoolValue(false)
		}
	} else {
		data.MulticastRoutingSwitch = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-multicast:multicast-routing.distributed"); !data.IpMulticastRoutingDistributed.IsNull() {
		if value.Exists() {
			data.IpMulticastRoutingDistributed = types.BoolValue(true)
		} else {
			data.IpMulticastRoutingDistributed = types.BoolValue(false)
		}
	} else {
		data.IpMulticastRoutingDistributed = types.BoolNull()
	}
	for i := range data.MulticastRoutingVrfs {
		keys := [...]string{"name"}
		keyValues := [...]string{data.MulticastRoutingVrfs[i].Vrf.ValueString()}

		var r gjson.Result
		res.Get(prefix + "ip.Cisco-IOS-XE-multicast:multicast-routing.vrf").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.MulticastRoutingVrfs[i].Vrf.IsNull() {
			data.MulticastRoutingVrfs[i].Vrf = types.StringValue(value.String())
		} else {
			data.MulticastRoutingVrfs[i].Vrf = types.StringNull()
		}
		if value := r.Get("distributed"); !data.MulticastRoutingVrfs[i].Distributed.IsNull() {
			if value.Exists() {
				data.MulticastRoutingVrfs[i].Distributed = types.BoolValue(true)
			} else {
				data.MulticastRoutingVrfs[i].Distributed = types.BoolValue(false)
			}
		} else {
			data.MulticastRoutingVrfs[i].Distributed = types.BoolNull()
		}
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.access-class"); value.Exists() && !data.IpHttpAccessClass.IsNull() {
		data.IpHttpAccessClass = types.Int64Value(value.Int())
	} else {
		data.IpHttpAccessClass = types.Int64Null()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.authentication.aaa"); !data.IpHttpAuthenticationAaa.IsNull() {
		if value.Exists() {
			data.IpHttpAuthenticationAaa = types.BoolValue(true)
		} else {
			data.IpHttpAuthenticationAaa = types.BoolValue(false)
		}
	} else {
		data.IpHttpAuthenticationAaa = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.authentication.aaa.exec-authorization"); value.Exists() && !data.IpHttpAuthenticationAaaExecAuthorization.IsNull() {
		data.IpHttpAuthenticationAaaExecAuthorization = types.StringValue(value.String())
	} else {
		data.IpHttpAuthenticationAaaExecAuthorization = types.StringNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.authentication.aaa.login-authentication"); value.Exists() && !data.IpHttpAuthenticationAaaLoginAuthentication.IsNull() {
		data.IpHttpAuthenticationAaaLoginAuthentication = types.StringValue(value.String())
	} else {
		data.IpHttpAuthenticationAaaLoginAuthentication = types.StringNull()
	}
	for i := range data.IpHttpAuthenticationAaaCommandAuthorization {
		keys := [...]string{"level"}
		keyValues := [...]string{strconv.FormatInt(data.IpHttpAuthenticationAaaCommandAuthorization[i].Level.ValueInt64(), 10)}

		var r gjson.Result
		res.Get(prefix + "ip.Cisco-IOS-XE-http:http.authentication.aaa.command-authorization").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("level"); value.Exists() && !data.IpHttpAuthenticationAaaCommandAuthorization[i].Level.IsNull() {
			data.IpHttpAuthenticationAaaCommandAuthorization[i].Level = types.Int64Value(value.Int())
		} else {
			data.IpHttpAuthenticationAaaCommandAuthorization[i].Level = types.Int64Null()
		}
		if value := r.Get("name"); value.Exists() && !data.IpHttpAuthenticationAaaCommandAuthorization[i].Name.IsNull() {
			data.IpHttpAuthenticationAaaCommandAuthorization[i].Name = types.StringValue(value.String())
		} else {
			data.IpHttpAuthenticationAaaCommandAuthorization[i].Name = types.StringNull()
		}
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.authentication.local"); !data.IpHttpAuthenticationLocal.IsNull() {
		if value.Exists() {
			data.IpHttpAuthenticationLocal = types.BoolValue(true)
		} else {
			data.IpHttpAuthenticationLocal = types.BoolValue(false)
		}
	} else {
		data.IpHttpAuthenticationLocal = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.server"); !data.IpHttpServer.IsNull() {
		if value.Exists() {
			data.IpHttpServer = types.BoolValue(value.Bool())
		}
	} else {
		data.IpHttpServer = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.secure-server"); !data.IpHttpSecureServer.IsNull() {
		if value.Exists() {
			data.IpHttpSecureServer = types.BoolValue(value.Bool())
		}
	} else {
		data.IpHttpSecureServer = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.secure-trustpoint"); value.Exists() && !data.IpHttpSecureTrustpoint.IsNull() {
		data.IpHttpSecureTrustpoint = types.StringValue(value.String())
	} else {
		data.IpHttpSecureTrustpoint = types.StringNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.tls-version"); value.Exists() && !data.IpHttpTlsVersion.IsNull() {
		data.IpHttpTlsVersion = types.StringValue(value.String())
	} else {
		data.IpHttpTlsVersion = types.StringNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.client.secure-trustpoint"); value.Exists() && !data.IpHttpClientSecureTrustpoint.IsNull() {
		data.IpHttpClientSecureTrustpoint = types.StringValue(value.String())
	} else {
		data.IpHttpClientSecureTrustpoint = types.StringNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.client.source-interface"); value.Exists() && !data.IpHttpClientSourceInterface.IsNull() {
		data.IpHttpClientSourceInterface = types.StringValue(value.String())
	} else {
		data.IpHttpClientSourceInterface = types.StringNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.secure-active-session-modules"); value.Exists() && !data.IpHttpSecureActiveSessionModules.IsNull() {
		data.IpHttpSecureActiveSessionModules = types.StringValue(value.String())
	} else {
		data.IpHttpSecureActiveSessionModules = types.StringNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.max-connections"); value.Exists() && !data.IpHttpMaxConnections.IsNull() {
		data.IpHttpMaxConnections = types.Int64Value(value.Int())
	} else {
		data.IpHttpMaxConnections = types.Int64Null()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.active-session-modules"); value.Exists() && !data.IpHttpActiveSessionModules.IsNull() {
		data.IpHttpActiveSessionModules = types.StringValue(value.String())
	} else {
		data.IpHttpActiveSessionModules = types.StringNull()
	}
	if value := res.Get(prefix + "ip.name-server.no-vrf-ordered"); value.Exists() && !data.IpNameServers.IsNull() {
		data.IpNameServers = helpers.GetStringList(value.Array())
	} else {
		data.IpNameServers = types.ListNull(types.StringType)
	}
	for i := range data.IpNameServersVrf {
		keys := [...]string{"word"}
		keyValues := [...]string{data.IpNameServersVrf[i].Vrf.ValueString()}

		var r gjson.Result
		res.Get(prefix + "ip.name-server.vrf").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("word"); value.Exists() && !data.IpNameServersVrf[i].Vrf.IsNull() {
			data.IpNameServersVrf[i].Vrf = types.StringValue(value.String())
		} else {
			data.IpNameServersVrf[i].Vrf = types.StringNull()
		}
		if value := r.Get("server-ip-list-ordered"); value.Exists() && !data.IpNameServersVrf[i].Servers.IsNull() {
			data.IpNameServersVrf[i].Servers = helpers.GetStringList(value.Array())
		} else {
			data.IpNameServersVrf[i].Servers = types.ListNull(types.StringType)
		}
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.Loopback"); value.Exists() && !data.IpDomainLookupSourceInterfaceLoopback.IsNull() {
		data.IpDomainLookupSourceInterfaceLoopback = types.Int64Value(value.Int())
	} else {
		data.IpDomainLookupSourceInterfaceLoopback = types.Int64Null()
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.Vlan"); value.Exists() && !data.IpDomainLookupSourceInterfaceVlan.IsNull() {
		data.IpDomainLookupSourceInterfaceVlan = types.Int64Value(value.Int())
	} else {
		data.IpDomainLookupSourceInterfaceVlan = types.Int64Null()
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.GigabitEthernet"); value.Exists() && !data.IpDomainLookupSourceInterfaceGigabitEthernet.IsNull() {
		data.IpDomainLookupSourceInterfaceGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpDomainLookupSourceInterfaceGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.TwoGigabitEthernet"); value.Exists() && !data.IpDomainLookupSourceInterfaceTwoGigabitEthernet.IsNull() {
		data.IpDomainLookupSourceInterfaceTwoGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpDomainLookupSourceInterfaceTwoGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.FiveGigabitEthernet"); value.Exists() && !data.IpDomainLookupSourceInterfaceFiveGigabitEthernet.IsNull() {
		data.IpDomainLookupSourceInterfaceFiveGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpDomainLookupSourceInterfaceFiveGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.TenGigabitEthernet"); value.Exists() && !data.IpDomainLookupSourceInterfaceTenGigabitEthernet.IsNull() {
		data.IpDomainLookupSourceInterfaceTenGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpDomainLookupSourceInterfaceTenGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.TwentyFiveGigE"); value.Exists() && !data.IpDomainLookupSourceInterfaceTwentyFiveGigabitEthernet.IsNull() {
		data.IpDomainLookupSourceInterfaceTwentyFiveGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpDomainLookupSourceInterfaceTwentyFiveGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.FortyGigabitEthernet"); value.Exists() && !data.IpDomainLookupSourceInterfaceFortyGigabitEthernet.IsNull() {
		data.IpDomainLookupSourceInterfaceFortyGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpDomainLookupSourceInterfaceFortyGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.HundredGigE"); value.Exists() && !data.IpDomainLookupSourceInterfaceHundredGigabitEthernet.IsNull() {
		data.IpDomainLookupSourceInterfaceHundredGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpDomainLookupSourceInterfaceHundredGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "cisp.enable"); !data.CispEnable.IsNull() {
		if value.Exists() {
			data.CispEnable = types.BoolValue(true)
		} else {
			data.CispEnable = types.BoolValue(false)
		}
	} else {
		data.CispEnable = types.BoolNull()
	}
	if value := res.Get(prefix + "epm.logging"); !data.EpmLogging.IsNull() {
		if value.Exists() {
			data.EpmLogging = types.BoolValue(true)
		} else {
			data.EpmLogging = types.BoolValue(false)
		}
	} else {
		data.EpmLogging = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:access-session.mac-move.deny"); !data.AccessSessionMacMoveDeny.IsNull() {
		if value.Exists() {
			data.AccessSessionMacMoveDeny = types.BoolValue(true)
		} else {
			data.AccessSessionMacMoveDeny = types.BoolValue(false)
		}
	} else {
		data.AccessSessionMacMoveDeny = types.BoolNull()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-diagnostics:diagnostic.bootup.level"); value.Exists() && !data.DiagnosticBootupLevel.IsNull() {
		data.DiagnosticBootupLevel = types.StringValue(value.String())
	} else {
		data.DiagnosticBootupLevel = types.StringNull()
	}
	if value := res.Get(prefix + "memory.free.low-watermark.processor"); value.Exists() && !data.MemoryFreeLowWatermarkProcessor.IsNull() {
		data.MemoryFreeLowWatermarkProcessor = types.Int64Value(value.Int())
	} else {
		data.MemoryFreeLowWatermarkProcessor = types.Int64Null()
	}
	if value := res.Get(prefix + "archive.path"); value.Exists() && !data.ArchivePath.IsNull() {
		data.ArchivePath = types.StringValue(value.String())
	} else {
		data.ArchivePath = types.StringNull()
	}
	if value := res.Get(prefix + "archive.maximum"); value.Exists() && !data.ArchiveMaximum.IsNull() {
		data.ArchiveMaximum = types.Int64Value(value.Int())
	} else {
		data.ArchiveMaximum = types.Int64Null()
	}
	if value := res.Get(prefix + "archive.write-memory"); !data.ArchiveWriteMemory.IsNull() {
		if value.Exists() {
			data.ArchiveWriteMemory = types.BoolValue(true)
		} else {
			data.ArchiveWriteMemory = types.BoolValue(false)
		}
	} else {
		data.ArchiveWriteMemory = types.BoolNull()
	}
	if value := res.Get(prefix + "archive.time-period"); value.Exists() && !data.ArchiveTimePeriod.IsNull() {
		data.ArchiveTimePeriod = types.Int64Value(value.Int())
	} else {
		data.ArchiveTimePeriod = types.Int64Null()
	}
	if value := res.Get(prefix + "archive.log.config.logging.enable"); !data.ArchiveLogConfigLoggingEnable.IsNull() {
		if value.Exists() {
			data.ArchiveLogConfigLoggingEnable = types.BoolValue(true)
		} else {
			data.ArchiveLogConfigLoggingEnable = types.BoolValue(false)
		}
	} else {
		data.ArchiveLogConfigLoggingEnable = types.BoolNull()
	}
	if value := res.Get(prefix + "archive.log.config.logging.size"); value.Exists() && !data.ArchiveLogConfigLoggingSize.IsNull() {
		data.ArchiveLogConfigLoggingSize = types.Int64Value(value.Int())
	} else {
		data.ArchiveLogConfigLoggingSize = types.Int64Null()
	}
	if value := res.Get(prefix + "redundancy"); !data.Redundancy.IsNull() {
		if value.Exists() {
			data.Redundancy = types.BoolValue(true)
		} else {
			data.Redundancy = types.BoolValue(false)
		}
	} else {
		data.Redundancy = types.BoolNull()
	}
	if value := res.Get(prefix + "redundancy.mode"); value.Exists() && !data.RedundancyMode.IsNull() {
		data.RedundancyMode = types.StringValue(value.String())
	} else {
		data.RedundancyMode = types.StringNull()
	}
	if value := res.Get(prefix + "transceivers.type.all.monitoring-enable.monitoring"); !data.TransceiverTypeAllMonitoring.IsNull() {
		if value.Exists() {
			data.TransceiverTypeAllMonitoring = types.BoolValue(true)
		} else {
			data.TransceiverTypeAllMonitoring = types.BoolValue(false)
		}
	} else {
		data.TransceiverTypeAllMonitoring = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.forward-protocol-v2.nd"); !data.IpForwardProtocolNd.IsNull() {
		if value.Exists() {
			data.IpForwardProtocolNd = types.BoolValue(value.Bool())
		}
	} else {
		data.IpForwardProtocolNd = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.scp.server.enable"); !data.IpScpServerEnable.IsNull() {
		if value.Exists() {
			data.IpScpServerEnable = types.BoolValue(true)
		} else {
			data.IpScpServerEnable = types.BoolValue(false)
		}
	} else {
		data.IpScpServerEnable = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.ssh.ssh-version"); value.Exists() && !data.IpSshVersion.IsNull() {
		data.IpSshVersion = types.StringValue(value.String())
	} else {
		data.IpSshVersion = types.StringNull()
	}
	if value := res.Get(prefix + "ip.ssh.version"); value.Exists() && !data.IpSshVersionLegacy.IsNull() {
		data.IpSshVersionLegacy = types.Int64Value(value.Int())
	} else {
		data.IpSshVersionLegacy = types.Int64Null()
	}
	if value := res.Get(prefix + "ip.ssh.time-out"); value.Exists() && !data.IpSshTimeOut.IsNull() {
		data.IpSshTimeOut = types.Int64Value(value.Int())
	} else {
		data.IpSshTimeOut = types.Int64Null()
	}
	if value := res.Get(prefix + "ip.ssh.authentication-retries"); value.Exists() && !data.IpSshAuthenticationRetries.IsNull() {
		data.IpSshAuthenticationRetries = types.Int64Value(value.Int())
	} else {
		data.IpSshAuthenticationRetries = types.Int64Null()
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.Loopback"); value.Exists() && !data.IpSshSourceInterfaceLoopback.IsNull() {
		data.IpSshSourceInterfaceLoopback = types.Int64Value(value.Int())
	} else {
		data.IpSshSourceInterfaceLoopback = types.Int64Null()
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.Vlan"); value.Exists() && !data.IpSshSourceInterfaceVlan.IsNull() {
		data.IpSshSourceInterfaceVlan = types.Int64Value(value.Int())
	} else {
		data.IpSshSourceInterfaceVlan = types.Int64Null()
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.GigabitEthernet"); value.Exists() && !data.IpSshSourceInterfaceGigabitEthernet.IsNull() {
		data.IpSshSourceInterfaceGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpSshSourceInterfaceGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.TwoGigabitEthernet"); value.Exists() && !data.IpSshSourceInterfaceTwoGigabitEthernet.IsNull() {
		data.IpSshSourceInterfaceTwoGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpSshSourceInterfaceTwoGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.FiveGigabitEthernet"); value.Exists() && !data.IpSshSourceInterfaceFiveGigabitEthernet.IsNull() {
		data.IpSshSourceInterfaceFiveGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpSshSourceInterfaceFiveGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.TenGigabitEthernet"); value.Exists() && !data.IpSshSourceInterfaceTenGigabitEthernet.IsNull() {
		data.IpSshSourceInterfaceTenGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpSshSourceInterfaceTenGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.TwentyFiveGigE"); value.Exists() && !data.IpSshSourceInterfaceTwentyFiveGigabitEthernet.IsNull() {
		data.IpSshSourceInterfaceTwentyFiveGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpSshSourceInterfaceTwentyFiveGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.FortyGigabitEthernet"); value.Exists() && !data.IpSshSourceInterfaceFortyGigabitEthernet.IsNull() {
		data.IpSshSourceInterfaceFortyGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpSshSourceInterfaceFortyGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.HundredGigE"); value.Exists() && !data.IpSshSourceInterfaceHundredGigabitEthernet.IsNull() {
		data.IpSshSourceInterfaceHundredGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpSshSourceInterfaceHundredGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "control-plane.Cisco-IOS-XE-policy:service-policy.input"); value.Exists() && !data.ControlPlaneServicePolicyInput.IsNull() {
		data.ControlPlaneServicePolicyInput = types.StringValue(value.String())
	} else {
		data.ControlPlaneServicePolicyInput = types.StringNull()
	}
	for i := range data.PnpProfiles {
		keys := [...]string{"name"}
		keyValues := [...]string{data.PnpProfiles[i].Name.ValueString()}

		var r gjson.Result
		res.Get(prefix + "Cisco-IOS-XE-pnp:pnp.profile").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.PnpProfiles[i].Name.IsNull() {
			data.PnpProfiles[i].Name = types.StringValue(value.String())
		} else {
			data.PnpProfiles[i].Name = types.StringNull()
		}
		if value := r.Get("transport.https.ipv4.ipv4-address"); value.Exists() && !data.PnpProfiles[i].TransportHttpsIpv4Ipv4Address.IsNull() {
			data.PnpProfiles[i].TransportHttpsIpv4Ipv4Address = types.StringValue(value.String())
		} else {
			data.PnpProfiles[i].TransportHttpsIpv4Ipv4Address = types.StringNull()
		}
		if value := r.Get("transport.https.ipv4.port"); value.Exists() && !data.PnpProfiles[i].TransportHttpsIpv4Port.IsNull() {
			data.PnpProfiles[i].TransportHttpsIpv4Port = types.Int64Value(value.Int())
		} else {
			data.PnpProfiles[i].TransportHttpsIpv4Port = types.Int64Null()
		}
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.Loopback"); value.Exists() && !data.IpTacacsSourceInterfaceLoopback.IsNull() {
		data.IpTacacsSourceInterfaceLoopback = types.Int64Value(value.Int())
	} else {
		data.IpTacacsSourceInterfaceLoopback = types.Int64Null()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.Vlan"); value.Exists() && !data.IpTacacsSourceInterfaceVlan.IsNull() {
		data.IpTacacsSourceInterfaceVlan = types.Int64Value(value.Int())
	} else {
		data.IpTacacsSourceInterfaceVlan = types.Int64Null()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.GigabitEthernet"); value.Exists() && !data.IpTacacsSourceInterfaceGigabitEthernet.IsNull() {
		data.IpTacacsSourceInterfaceGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpTacacsSourceInterfaceGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.TwoGigabitEthernet"); value.Exists() && !data.IpTacacsSourceInterfaceTwoGigabitEthernet.IsNull() {
		data.IpTacacsSourceInterfaceTwoGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpTacacsSourceInterfaceTwoGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.FiveGigabitEthernet"); value.Exists() && !data.IpTacacsSourceInterfaceFiveGigabitEthernet.IsNull() {
		data.IpTacacsSourceInterfaceFiveGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpTacacsSourceInterfaceFiveGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.TenGigabitEthernet"); value.Exists() && !data.IpTacacsSourceInterfaceTenGigabitEthernet.IsNull() {
		data.IpTacacsSourceInterfaceTenGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpTacacsSourceInterfaceTenGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.TwentyFiveGigE"); value.Exists() && !data.IpTacacsSourceInterfaceTwentyFiveGigabitEthernet.IsNull() {
		data.IpTacacsSourceInterfaceTwentyFiveGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpTacacsSourceInterfaceTwentyFiveGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.FortyGigabitEthernet"); value.Exists() && !data.IpTacacsSourceInterfaceFortyGigabitEthernet.IsNull() {
		data.IpTacacsSourceInterfaceFortyGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpTacacsSourceInterfaceFortyGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.HundredGigE"); value.Exists() && !data.IpTacacsSourceInterfaceHundredGigabitEthernet.IsNull() {
		data.IpTacacsSourceInterfaceHundredGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpTacacsSourceInterfaceHundredGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.vrf"); value.Exists() && !data.IpTacacsSourceInterfaceVrf.IsNull() {
		data.IpTacacsSourceInterfaceVrf = types.StringValue(value.String())
	} else {
		data.IpTacacsSourceInterfaceVrf = types.StringNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.Loopback"); value.Exists() && !data.IpRadiusSourceInterfaceLoopback.IsNull() {
		data.IpRadiusSourceInterfaceLoopback = types.Int64Value(value.Int())
	} else {
		data.IpRadiusSourceInterfaceLoopback = types.Int64Null()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.Vlan"); value.Exists() && !data.IpRadiusSourceInterfaceVlan.IsNull() {
		data.IpRadiusSourceInterfaceVlan = types.Int64Value(value.Int())
	} else {
		data.IpRadiusSourceInterfaceVlan = types.Int64Null()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.GigabitEthernet"); value.Exists() && !data.IpRadiusSourceInterfaceGigabitEthernet.IsNull() {
		data.IpRadiusSourceInterfaceGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpRadiusSourceInterfaceGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.TwoGigabitEthernet"); value.Exists() && !data.IpRadiusSourceInterfaceTwoGigabitEthernet.IsNull() {
		data.IpRadiusSourceInterfaceTwoGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpRadiusSourceInterfaceTwoGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.FiveGigabitEthernet"); value.Exists() && !data.IpRadiusSourceInterfaceFiveGigabitEthernet.IsNull() {
		data.IpRadiusSourceInterfaceFiveGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpRadiusSourceInterfaceFiveGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.TenGigabitEthernet"); value.Exists() && !data.IpRadiusSourceInterfaceTenGigabitEthernet.IsNull() {
		data.IpRadiusSourceInterfaceTenGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpRadiusSourceInterfaceTenGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.TwentyFiveGigE"); value.Exists() && !data.IpRadiusSourceInterfaceTwentyFiveGigabitEthernet.IsNull() {
		data.IpRadiusSourceInterfaceTwentyFiveGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpRadiusSourceInterfaceTwentyFiveGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.FortyGigabitEthernet"); value.Exists() && !data.IpRadiusSourceInterfaceFortyGigabitEthernet.IsNull() {
		data.IpRadiusSourceInterfaceFortyGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpRadiusSourceInterfaceFortyGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.HundredGigE"); value.Exists() && !data.IpRadiusSourceInterfaceHundredGigabitEthernet.IsNull() {
		data.IpRadiusSourceInterfaceHundredGigabitEthernet = types.StringValue(value.String())
	} else {
		data.IpRadiusSourceInterfaceHundredGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.vrf"); value.Exists() && !data.IpRadiusSourceInterfaceVrf.IsNull() {
		data.IpRadiusSourceInterfaceVrf = types.StringValue(value.String())
	} else {
		data.IpRadiusSourceInterfaceVrf = types.StringNull()
	}
	for i := range data.BootSystemFlashFiles {
		keys := [...]string{"flash-leaf"}
		keyValues := [...]string{data.BootSystemFlashFiles[i].Path.ValueString()}

		var r gjson.Result
		res.Get(prefix + "boot.system.flash.flash-list-ordered-by-user").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("flash-leaf"); value.Exists() && !data.BootSystemFlashFiles[i].Path.IsNull() {
			data.BootSystemFlashFiles[i].Path = types.StringValue(value.String())
		} else {
			data.BootSystemFlashFiles[i].Path = types.StringNull()
		}
	}
	for i := range data.BootSystemBootfiles {
		keys := [...]string{"filename"}
		keyValues := [...]string{data.BootSystemBootfiles[i].Path.ValueString()}

		var r gjson.Result
		res.Get(prefix + "boot.system.bootfile.filename-list-ordered-by-user").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("filename"); value.Exists() && !data.BootSystemBootfiles[i].Path.IsNull() {
			data.BootSystemBootfiles[i].Path = types.StringValue(value.String())
		} else {
			data.BootSystemBootfiles[i].Path = types.StringNull()
		}
	}
	if value := res.Get(prefix + "enable.secret.level"); value.Exists() && !data.EnableSecretLevel.IsNull() {
		data.EnableSecretLevel = types.Int64Value(value.Int())
	} else {
		data.EnableSecretLevel = types.Int64Null()
	}
	for i := range data.IpHosts {
		keys := [...]string{"name"}
		keyValues := [...]string{data.IpHosts[i].Name.ValueString()}

		var r gjson.Result
		res.Get(prefix + "ip.host.host-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("name"); value.Exists() && !data.IpHosts[i].Name.IsNull() {
			data.IpHosts[i].Name = types.StringValue(value.String())
		} else {
			data.IpHosts[i].Name = types.StringNull()
		}
		if value := r.Get("ip-list-ordered"); value.Exists() && !data.IpHosts[i].Ips.IsNull() {
			data.IpHosts[i].Ips = helpers.GetStringList(value.Array())
		} else {
			data.IpHosts[i].Ips = types.ListNull(types.StringType)
		}
	}
	for i := range data.IpHostsVrf {
		keys := [...]string{"vrf-name"}
		keyValues := [...]string{data.IpHostsVrf[i].Vrf.ValueString()}

		var r gjson.Result
		res.Get(prefix + "ip.host.vrf").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("vrf-name"); value.Exists() && !data.IpHostsVrf[i].Vrf.IsNull() {
			data.IpHostsVrf[i].Vrf = types.StringValue(value.String())
		} else {
			data.IpHostsVrf[i].Vrf = types.StringNull()
		}
		for ci := range data.IpHostsVrf[i].Hosts {
			keys := [...]string{"host-name"}
			keyValues := [...]string{data.IpHostsVrf[i].Hosts[ci].Name.ValueString()}

			var cr gjson.Result
			r.Get("host-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 {
						cr = v
						return false
					}
					return true
				},
			)
			if value := cr.Get("host-name"); value.Exists() && !data.IpHostsVrf[i].Hosts[ci].Name.IsNull() {
				data.IpHostsVrf[i].Hosts[ci].Name = types.StringValue(value.String())
			} else {
				data.IpHostsVrf[i].Hosts[ci].Name = types.StringNull()
			}
			if value := cr.Get("ip-list"); value.Exists() && !data.IpHostsVrf[i].Hosts[ci].Ips.IsNull() {
				data.IpHostsVrf[i].Hosts[ci].Ips = helpers.GetStringList(value.Array())
			} else {
				data.IpHostsVrf[i].Hosts[ci].Ips = types.ListNull(types.StringType)
			}
		}
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-diagnostics:diagnostic.event-log.size"); value.Exists() && !data.DiagnosticEventLogSize.IsNull() {
		data.DiagnosticEventLogSize = types.Int64Value(value.Int())
	} else {
		data.DiagnosticEventLogSize = types.Int64Null()
	}
	if value := res.Get(prefix + "subscriber.templating"); !data.SubscriberTemplating.IsNull() {
		if value.Exists() {
			data.SubscriberTemplating = types.BoolValue(true)
		} else {
			data.SubscriberTemplating = types.BoolValue(false)
		}
	} else {
		data.SubscriberTemplating = types.BoolNull()
	}
	if value := res.Get(prefix + "call-home.Cisco-IOS-XE-call-home:contact-email-addr"); value.Exists() && !data.CallHomeContactEmail.IsNull() {
		data.CallHomeContactEmail = types.StringValue(value.String())
	} else {
		data.CallHomeContactEmail = types.StringNull()
	}
	if value := res.Get(prefix + "call-home.Cisco-IOS-XE-call-home:tac-profile.profile.CiscoTAC-1.active"); !data.CallHomeCiscoTac1ProfileActive.IsNull() {
		if value.Exists() {
			data.CallHomeCiscoTac1ProfileActive = types.BoolValue(value.Bool())
		}
	} else {
		data.CallHomeCiscoTac1ProfileActive = types.BoolNull()
	}
	if value := res.Get(prefix + "call-home.Cisco-IOS-XE-call-home:tac-profile.profile.CiscoTAC-1.destination.transport-method"); value.Exists() && !data.CallHomeCiscoTac1DestinationTransportMethod.IsNull() {
		data.CallHomeCiscoTac1DestinationTransportMethod = types.StringValue(value.String())
	} else {
		data.CallHomeCiscoTac1DestinationTransportMethod = types.StringNull()
	}
	if value := res.Get(prefix + "ip.ftp.passive-enable"); !data.IpFtpPassive.IsNull() {
		if value.Exists() {
			data.IpFtpPassive = types.BoolValue(value.Bool())
		}
	} else {
		data.IpFtpPassive = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.tftp.source-interface.GigabitEthernet"); value.Exists() && !data.TftpSourceInterfaceGigabitEthernet.IsNull() {
		data.TftpSourceInterfaceGigabitEthernet = types.StringValue(value.String())
	} else {
		data.TftpSourceInterfaceGigabitEthernet = types.StringNull()
	}
	if value := res.Get(prefix + "ip.tftp.source-interface.Loopback"); value.Exists() && !data.TftpSourceInterfaceLoopback.IsNull() {
		data.TftpSourceInterfaceLoopback = types.Int64Value(value.Int())
	} else {
		data.TftpSourceInterfaceLoopback = types.Int64Null()
	}
	if value := res.Get(prefix + "multilink.Cisco-IOS-XE-ppp:bundle-name"); value.Exists() && !data.MultilinkPppBundleName.IsNull() {
		data.MultilinkPppBundleName = types.StringValue(value.String())
	} else {
		data.MultilinkPppBundleName = types.StringNull()
	}
	if value := res.Get(prefix + "version"); value.Exists() && !data.Version.IsNull() {
		data.Version = types.StringValue(value.String())
	} else {
		data.Version = types.StringNull()
	}
	for i := range data.TrackObjects {
		keys := [...]string{"object-number"}
		keyValues := [...]string{data.TrackObjects[i].Number.ValueString()}

		var r gjson.Result
		res.Get(prefix + "track.Cisco-IOS-XE-track:tracked-object-v2").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("object-number"); value.Exists() && !data.TrackObjects[i].Number.IsNull() {
			data.TrackObjects[i].Number = types.StringValue(value.String())
		} else {
			data.TrackObjects[i].Number = types.StringNull()
		}
		if value := r.Get("ip.sla.number"); value.Exists() && !data.TrackObjects[i].IpSlaNumber.IsNull() {
			data.TrackObjects[i].IpSlaNumber = types.Int64Value(value.Int())
		} else {
			data.TrackObjects[i].IpSlaNumber = types.Int64Null()
		}
		if value := r.Get("ip.sla.reachability"); !data.TrackObjects[i].IpSlaReachability.IsNull() {
			if value.Exists() {
				data.TrackObjects[i].IpSlaReachability = types.BoolValue(true)
			} else {
				data.TrackObjects[i].IpSlaReachability = types.BoolValue(false)
			}
		} else {
			data.TrackObjects[i].IpSlaReachability = types.BoolNull()
		}
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-nbar:nbar.classification.dns.classify-by-domain-with-default"); !data.IpNbarClassificationDnsClassifyByDomain.IsNull() {
		if value.Exists() {
			data.IpNbarClassificationDnsClassifyByDomain = types.BoolValue(value.Bool())
		}
	} else {
		data.IpNbarClassificationDnsClassifyByDomain = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.multicast.Cisco-IOS-XE-multicast:route-limit-container.routelimit"); value.Exists() && !data.IpMulticastRouteLimit.IsNull() {
		data.IpMulticastRouteLimit = types.Int64Value(value.Int())
	} else {
		data.IpMulticastRouteLimit = types.Int64Null()
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-aaa:security.passwords.min-length"); value.Exists() && !data.SecurityPasswordsMinLength.IsNull() {
		data.SecurityPasswordsMinLength = types.Int64Value(value.Int())
	} else {
		data.SecurityPasswordsMinLength = types.Int64Null()
	}
	if value := res.Get(prefix + "ip.domain.list.domain-name"); value.Exists() && !data.IpDomainListNames.IsNull() {
		data.IpDomainListNames = helpers.GetStringList(value.Array())
	} else {
		data.IpDomainListNames = types.ListNull(types.StringType)
	}
	if value := res.Get(prefix + "ip.domain.list.vrf.domain-name"); value.Exists() && !data.IpDomainListVrfDomain.IsNull() {
		data.IpDomainListVrfDomain = types.StringValue(value.String())
	} else {
		data.IpDomainListVrfDomain = types.StringNull()
	}
	if value := res.Get(prefix + "ip.domain.list.vrf.vrf-name"); value.Exists() && !data.IpDomainListVrf.IsNull() {
		data.IpDomainListVrf = types.StringValue(value.String())
	} else {
		data.IpDomainListVrf = types.StringNull()
	}
	if value := res.Get(prefix + "ethernet.Cisco-IOS-XE-ethernet:cfm.alarm-config.delay"); value.Exists() && !data.EthernetCfmAlarmConfigDelay.IsNull() {
		data.EthernetCfmAlarmConfigDelay = types.Int64Value(value.Int())
	} else {
		data.EthernetCfmAlarmConfigDelay = types.Int64Null()
	}
	if value := res.Get(prefix + "ethernet.Cisco-IOS-XE-ethernet:cfm.alarm-config.reset"); value.Exists() && !data.EthernetCfmAlarmConfigReset.IsNull() {
		data.EthernetCfmAlarmConfigReset = types.Int64Value(value.Int())
	} else {
		data.EthernetCfmAlarmConfigReset = types.Int64Null()
	}
	if value := res.Get(prefix + "standby.redirects-config.redirects"); !data.StandbyRedirects.IsNull() {
		if value.Exists() {
			data.StandbyRedirects = types.BoolValue(value.Bool())
		}
	} else {
		data.StandbyRedirects = types.BoolNull()
	}
	if value := res.Get(prefix + "standby.redirects-config.redirect-enable-disable.redirects"); value.Exists() && !data.StandbyRedirectsEnableDisable.IsNull() {
		data.StandbyRedirectsEnableDisable = types.StringValue(value.String())
	} else {
		data.StandbyRedirectsEnableDisable = types.StringNull()
	}
}

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

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

func (data *System) 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 + "hostname"); value.Exists() {
		data.Hostname = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.bgp-community.new-format"); value.Exists() {
		data.IpBgpCommunityNewFormat = types.BoolValue(true)
	} else {
		data.IpBgpCommunityNewFormat = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.routing-conf.routing"); value.Exists() {
		data.IpRouting = types.BoolValue(value.Bool())
	} else {
		data.IpRouting = types.BoolNull()
	}
	if value := res.Get(prefix + "ipv6.unicast-routing"); value.Exists() {
		data.Ipv6UnicastRouting = types.BoolValue(true)
	} else {
		data.Ipv6UnicastRouting = types.BoolValue(false)
	}
	if value := res.Get(prefix + "system.Cisco-IOS-XE-switch:mtu.size"); value.Exists() {
		data.Mtu = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.source-route"); value.Exists() {
		data.IpSourceRoute = types.BoolValue(value.Bool())
	} else {
		data.IpSourceRoute = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.domain.lookup"); value.Exists() {
		data.IpDomainLookup = types.BoolValue(value.Bool())
	} else {
		data.IpDomainLookup = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.domain.name"); value.Exists() {
		data.IpDomainName = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "login.delay"); value.Exists() {
		data.LoginDelay = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "login.on-failure"); value.Exists() {
		data.LoginOnFailure = types.BoolValue(true)
	} else {
		data.LoginOnFailure = types.BoolValue(false)
	}
	if value := res.Get(prefix + "login.on-failure.log"); value.Exists() {
		data.LoginOnFailureLog = types.BoolValue(true)
	} else {
		data.LoginOnFailureLog = types.BoolValue(false)
	}
	if value := res.Get(prefix + "login.on-success"); value.Exists() {
		data.LoginOnSuccess = types.BoolValue(true)
	} else {
		data.LoginOnSuccess = types.BoolValue(false)
	}
	if value := res.Get(prefix + "login.on-success.log"); value.Exists() {
		data.LoginOnSuccessLog = types.BoolValue(true)
	} else {
		data.LoginOnSuccessLog = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-multicast:multicast-routing"); value.Exists() {
		data.IpMulticastRouting = types.BoolValue(true)
	} else {
		data.IpMulticastRouting = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-multicast:mcr-conf.multicast-routing"); value.Exists() {
		data.MulticastRoutingSwitch = types.BoolValue(true)
	} else {
		data.MulticastRoutingSwitch = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-multicast:multicast-routing.distributed"); value.Exists() {
		data.IpMulticastRoutingDistributed = types.BoolValue(true)
	} else {
		data.IpMulticastRoutingDistributed = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-multicast:multicast-routing.vrf"); value.Exists() {
		data.MulticastRoutingVrfs = make([]SystemMulticastRoutingVrfs, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := SystemMulticastRoutingVrfs{}
			if cValue := v.Get("name"); cValue.Exists() {
				item.Vrf = types.StringValue(cValue.String())
			}
			if cValue := v.Get("distributed"); cValue.Exists() {
				item.Distributed = types.BoolValue(true)
			} else {
				item.Distributed = types.BoolValue(false)
			}
			data.MulticastRoutingVrfs = append(data.MulticastRoutingVrfs, item)
			return true
		})
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.access-class"); value.Exists() {
		data.IpHttpAccessClass = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.authentication.aaa"); value.Exists() {
		data.IpHttpAuthenticationAaa = types.BoolValue(true)
	} else {
		data.IpHttpAuthenticationAaa = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.authentication.aaa.exec-authorization"); value.Exists() {
		data.IpHttpAuthenticationAaaExecAuthorization = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.authentication.aaa.login-authentication"); value.Exists() {
		data.IpHttpAuthenticationAaaLoginAuthentication = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.authentication.aaa.command-authorization"); value.Exists() {
		data.IpHttpAuthenticationAaaCommandAuthorization = make([]SystemIpHttpAuthenticationAaaCommandAuthorization, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := SystemIpHttpAuthenticationAaaCommandAuthorization{}
			if cValue := v.Get("level"); cValue.Exists() {
				item.Level = types.Int64Value(cValue.Int())
			}
			if cValue := v.Get("name"); cValue.Exists() {
				item.Name = types.StringValue(cValue.String())
			}
			data.IpHttpAuthenticationAaaCommandAuthorization = append(data.IpHttpAuthenticationAaaCommandAuthorization, item)
			return true
		})
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.authentication.local"); value.Exists() {
		data.IpHttpAuthenticationLocal = types.BoolValue(true)
	} else {
		data.IpHttpAuthenticationLocal = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.server"); value.Exists() {
		data.IpHttpServer = types.BoolValue(value.Bool())
	} else {
		data.IpHttpServer = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.secure-server"); value.Exists() {
		data.IpHttpSecureServer = types.BoolValue(value.Bool())
	} else {
		data.IpHttpSecureServer = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.secure-trustpoint"); value.Exists() {
		data.IpHttpSecureTrustpoint = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.tls-version"); value.Exists() {
		data.IpHttpTlsVersion = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.client.secure-trustpoint"); value.Exists() {
		data.IpHttpClientSecureTrustpoint = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.client.source-interface"); value.Exists() {
		data.IpHttpClientSourceInterface = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.secure-active-session-modules"); value.Exists() {
		data.IpHttpSecureActiveSessionModules = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.max-connections"); value.Exists() {
		data.IpHttpMaxConnections = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.active-session-modules"); value.Exists() {
		data.IpHttpActiveSessionModules = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.name-server.no-vrf-ordered"); value.Exists() {
		data.IpNameServers = helpers.GetStringList(value.Array())
	} else {
		data.IpNameServers = types.ListNull(types.StringType)
	}
	if value := res.Get(prefix + "ip.name-server.vrf"); value.Exists() {
		data.IpNameServersVrf = make([]SystemIpNameServersVrf, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := SystemIpNameServersVrf{}
			if cValue := v.Get("word"); cValue.Exists() {
				item.Vrf = types.StringValue(cValue.String())
			}
			if cValue := v.Get("server-ip-list-ordered"); cValue.Exists() {
				item.Servers = helpers.GetStringList(cValue.Array())
			} else {
				item.Servers = types.ListNull(types.StringType)
			}
			data.IpNameServersVrf = append(data.IpNameServersVrf, item)
			return true
		})
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.Loopback"); value.Exists() {
		data.IpDomainLookupSourceInterfaceLoopback = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.Vlan"); value.Exists() {
		data.IpDomainLookupSourceInterfaceVlan = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.GigabitEthernet"); value.Exists() {
		data.IpDomainLookupSourceInterfaceGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.TwoGigabitEthernet"); value.Exists() {
		data.IpDomainLookupSourceInterfaceTwoGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.FiveGigabitEthernet"); value.Exists() {
		data.IpDomainLookupSourceInterfaceFiveGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.TenGigabitEthernet"); value.Exists() {
		data.IpDomainLookupSourceInterfaceTenGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.TwentyFiveGigE"); value.Exists() {
		data.IpDomainLookupSourceInterfaceTwentyFiveGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.FortyGigabitEthernet"); value.Exists() {
		data.IpDomainLookupSourceInterfaceFortyGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.HundredGigE"); value.Exists() {
		data.IpDomainLookupSourceInterfaceHundredGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "cisp.enable"); value.Exists() {
		data.CispEnable = types.BoolValue(true)
	} else {
		data.CispEnable = types.BoolValue(false)
	}
	if value := res.Get(prefix + "epm.logging"); value.Exists() {
		data.EpmLogging = types.BoolValue(true)
	} else {
		data.EpmLogging = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:access-session.mac-move.deny"); value.Exists() {
		data.AccessSessionMacMoveDeny = types.BoolValue(true)
	} else {
		data.AccessSessionMacMoveDeny = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-diagnostics:diagnostic.bootup.level"); value.Exists() {
		data.DiagnosticBootupLevel = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "memory.free.low-watermark.processor"); value.Exists() {
		data.MemoryFreeLowWatermarkProcessor = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "archive.path"); value.Exists() {
		data.ArchivePath = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "archive.maximum"); value.Exists() {
		data.ArchiveMaximum = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "archive.write-memory"); value.Exists() {
		data.ArchiveWriteMemory = types.BoolValue(true)
	} else {
		data.ArchiveWriteMemory = types.BoolValue(false)
	}
	if value := res.Get(prefix + "archive.time-period"); value.Exists() {
		data.ArchiveTimePeriod = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "archive.log.config.logging.enable"); value.Exists() {
		data.ArchiveLogConfigLoggingEnable = types.BoolValue(true)
	} else {
		data.ArchiveLogConfigLoggingEnable = types.BoolValue(false)
	}
	if value := res.Get(prefix + "archive.log.config.logging.size"); value.Exists() {
		data.ArchiveLogConfigLoggingSize = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "redundancy"); value.Exists() {
		data.Redundancy = types.BoolValue(true)
	} else {
		data.Redundancy = types.BoolValue(false)
	}
	if value := res.Get(prefix + "redundancy.mode"); value.Exists() {
		data.RedundancyMode = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "transceivers.type.all.monitoring-enable.monitoring"); value.Exists() {
		data.TransceiverTypeAllMonitoring = types.BoolValue(true)
	} else {
		data.TransceiverTypeAllMonitoring = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.forward-protocol-v2.nd"); value.Exists() {
		data.IpForwardProtocolNd = types.BoolValue(value.Bool())
	} else {
		data.IpForwardProtocolNd = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.scp.server.enable"); value.Exists() {
		data.IpScpServerEnable = types.BoolValue(true)
	} else {
		data.IpScpServerEnable = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.ssh.ssh-version"); value.Exists() {
		data.IpSshVersion = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.ssh.version"); value.Exists() {
		data.IpSshVersionLegacy = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.ssh.time-out"); value.Exists() {
		data.IpSshTimeOut = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.ssh.authentication-retries"); value.Exists() {
		data.IpSshAuthenticationRetries = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.Loopback"); value.Exists() {
		data.IpSshSourceInterfaceLoopback = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.Vlan"); value.Exists() {
		data.IpSshSourceInterfaceVlan = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.GigabitEthernet"); value.Exists() {
		data.IpSshSourceInterfaceGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.TwoGigabitEthernet"); value.Exists() {
		data.IpSshSourceInterfaceTwoGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.FiveGigabitEthernet"); value.Exists() {
		data.IpSshSourceInterfaceFiveGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.TenGigabitEthernet"); value.Exists() {
		data.IpSshSourceInterfaceTenGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.TwentyFiveGigE"); value.Exists() {
		data.IpSshSourceInterfaceTwentyFiveGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.FortyGigabitEthernet"); value.Exists() {
		data.IpSshSourceInterfaceFortyGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.HundredGigE"); value.Exists() {
		data.IpSshSourceInterfaceHundredGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "control-plane.Cisco-IOS-XE-policy:service-policy.input"); value.Exists() {
		data.ControlPlaneServicePolicyInput = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-pnp:pnp.profile"); value.Exists() {
		data.PnpProfiles = make([]SystemPnpProfiles, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := SystemPnpProfiles{}
			if cValue := v.Get("name"); cValue.Exists() {
				item.Name = types.StringValue(cValue.String())
			}
			if cValue := v.Get("transport.https.ipv4.ipv4-address"); cValue.Exists() {
				item.TransportHttpsIpv4Ipv4Address = types.StringValue(cValue.String())
			}
			if cValue := v.Get("transport.https.ipv4.port"); cValue.Exists() {
				item.TransportHttpsIpv4Port = types.Int64Value(cValue.Int())
			}
			data.PnpProfiles = append(data.PnpProfiles, item)
			return true
		})
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.Loopback"); value.Exists() {
		data.IpTacacsSourceInterfaceLoopback = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.Vlan"); value.Exists() {
		data.IpTacacsSourceInterfaceVlan = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.GigabitEthernet"); value.Exists() {
		data.IpTacacsSourceInterfaceGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.TwoGigabitEthernet"); value.Exists() {
		data.IpTacacsSourceInterfaceTwoGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.FiveGigabitEthernet"); value.Exists() {
		data.IpTacacsSourceInterfaceFiveGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.TenGigabitEthernet"); value.Exists() {
		data.IpTacacsSourceInterfaceTenGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.TwentyFiveGigE"); value.Exists() {
		data.IpTacacsSourceInterfaceTwentyFiveGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.FortyGigabitEthernet"); value.Exists() {
		data.IpTacacsSourceInterfaceFortyGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.HundredGigE"); value.Exists() {
		data.IpTacacsSourceInterfaceHundredGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.vrf"); value.Exists() {
		data.IpTacacsSourceInterfaceVrf = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.Loopback"); value.Exists() {
		data.IpRadiusSourceInterfaceLoopback = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.Vlan"); value.Exists() {
		data.IpRadiusSourceInterfaceVlan = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.GigabitEthernet"); value.Exists() {
		data.IpRadiusSourceInterfaceGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.TwoGigabitEthernet"); value.Exists() {
		data.IpRadiusSourceInterfaceTwoGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.FiveGigabitEthernet"); value.Exists() {
		data.IpRadiusSourceInterfaceFiveGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.TenGigabitEthernet"); value.Exists() {
		data.IpRadiusSourceInterfaceTenGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.TwentyFiveGigE"); value.Exists() {
		data.IpRadiusSourceInterfaceTwentyFiveGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.FortyGigabitEthernet"); value.Exists() {
		data.IpRadiusSourceInterfaceFortyGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.HundredGigE"); value.Exists() {
		data.IpRadiusSourceInterfaceHundredGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.vrf"); value.Exists() {
		data.IpRadiusSourceInterfaceVrf = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "boot.system.flash.flash-list-ordered-by-user"); value.Exists() {
		data.BootSystemFlashFiles = make([]SystemBootSystemFlashFiles, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := SystemBootSystemFlashFiles{}
			if cValue := v.Get("flash-leaf"); cValue.Exists() {
				item.Path = types.StringValue(cValue.String())
			}
			data.BootSystemFlashFiles = append(data.BootSystemFlashFiles, item)
			return true
		})
	}
	if value := res.Get(prefix + "boot.system.bootfile.filename-list-ordered-by-user"); value.Exists() {
		data.BootSystemBootfiles = make([]SystemBootSystemBootfiles, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := SystemBootSystemBootfiles{}
			if cValue := v.Get("filename"); cValue.Exists() {
				item.Path = types.StringValue(cValue.String())
			}
			data.BootSystemBootfiles = append(data.BootSystemBootfiles, item)
			return true
		})
	}
	if value := res.Get(prefix + "enable.secret.secret"); value.Exists() {
		data.EnableSecret = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "enable.secret.type"); value.Exists() {
		data.EnableSecretType = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "enable.secret.level"); value.Exists() {
		data.EnableSecretLevel = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.host.host-list"); value.Exists() {
		data.IpHosts = make([]SystemIpHosts, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := SystemIpHosts{}
			if cValue := v.Get("name"); cValue.Exists() {
				item.Name = types.StringValue(cValue.String())
			}
			if cValue := v.Get("ip-list-ordered"); cValue.Exists() {
				item.Ips = helpers.GetStringList(cValue.Array())
			} else {
				item.Ips = types.ListNull(types.StringType)
			}
			data.IpHosts = append(data.IpHosts, item)
			return true
		})
	}
	if value := res.Get(prefix + "ip.host.vrf"); value.Exists() {
		data.IpHostsVrf = make([]SystemIpHostsVrf, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := SystemIpHostsVrf{}
			if cValue := v.Get("vrf-name"); cValue.Exists() {
				item.Vrf = types.StringValue(cValue.String())
			}
			if cValue := v.Get("host-name"); cValue.Exists() {
				item.Hosts = make([]SystemIpHostsVrfHosts, 0)
				cValue.ForEach(func(ck, cv gjson.Result) bool {
					cItem := SystemIpHostsVrfHosts{}
					if ccValue := cv.Get("host-name"); ccValue.Exists() {
						cItem.Name = types.StringValue(ccValue.String())
					}
					if ccValue := cv.Get("ip-list"); ccValue.Exists() {
						cItem.Ips = helpers.GetStringList(ccValue.Array())
					} else {
						cItem.Ips = types.ListNull(types.StringType)
					}
					item.Hosts = append(item.Hosts, cItem)
					return true
				})
			}
			data.IpHostsVrf = append(data.IpHostsVrf, item)
			return true
		})
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-diagnostics:diagnostic.event-log.size"); value.Exists() {
		data.DiagnosticEventLogSize = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "subscriber.templating"); value.Exists() {
		data.SubscriberTemplating = types.BoolValue(true)
	} else {
		data.SubscriberTemplating = types.BoolValue(false)
	}
	if value := res.Get(prefix + "call-home.Cisco-IOS-XE-call-home:contact-email-addr"); value.Exists() {
		data.CallHomeContactEmail = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "call-home.Cisco-IOS-XE-call-home:tac-profile.profile.CiscoTAC-1.active"); value.Exists() {
		data.CallHomeCiscoTac1ProfileActive = types.BoolValue(value.Bool())
	} else {
		data.CallHomeCiscoTac1ProfileActive = types.BoolNull()
	}
	if value := res.Get(prefix + "call-home.Cisco-IOS-XE-call-home:tac-profile.profile.CiscoTAC-1.destination.transport-method"); value.Exists() {
		data.CallHomeCiscoTac1DestinationTransportMethod = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.ftp.passive-enable"); value.Exists() {
		data.IpFtpPassive = types.BoolValue(value.Bool())
	} else {
		data.IpFtpPassive = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.tftp.source-interface.GigabitEthernet"); value.Exists() {
		data.TftpSourceInterfaceGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.tftp.source-interface.Loopback"); value.Exists() {
		data.TftpSourceInterfaceLoopback = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "multilink.Cisco-IOS-XE-ppp:bundle-name"); value.Exists() {
		data.MultilinkPppBundleName = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "version"); value.Exists() {
		data.Version = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "track.Cisco-IOS-XE-track:tracked-object-v2"); value.Exists() {
		data.TrackObjects = make([]SystemTrackObjects, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := SystemTrackObjects{}
			if cValue := v.Get("object-number"); cValue.Exists() {
				item.Number = types.StringValue(cValue.String())
			}
			if cValue := v.Get("ip.sla.number"); cValue.Exists() {
				item.IpSlaNumber = types.Int64Value(cValue.Int())
			}
			if cValue := v.Get("ip.sla.reachability"); cValue.Exists() {
				item.IpSlaReachability = types.BoolValue(true)
			} else {
				item.IpSlaReachability = types.BoolValue(false)
			}
			data.TrackObjects = append(data.TrackObjects, item)
			return true
		})
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-nbar:nbar.classification.dns.classify-by-domain-with-default"); value.Exists() {
		data.IpNbarClassificationDnsClassifyByDomain = types.BoolValue(value.Bool())
	} else {
		data.IpNbarClassificationDnsClassifyByDomain = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.multicast.Cisco-IOS-XE-multicast:route-limit-container.routelimit"); value.Exists() {
		data.IpMulticastRouteLimit = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-aaa:security.passwords.min-length"); value.Exists() {
		data.SecurityPasswordsMinLength = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.domain.list.domain-name"); value.Exists() {
		data.IpDomainListNames = helpers.GetStringList(value.Array())
	} else {
		data.IpDomainListNames = types.ListNull(types.StringType)
	}
	if value := res.Get(prefix + "ip.domain.list.vrf.domain-name"); value.Exists() {
		data.IpDomainListVrfDomain = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.domain.list.vrf.vrf-name"); value.Exists() {
		data.IpDomainListVrf = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ethernet.Cisco-IOS-XE-ethernet:cfm.alarm-config.delay"); value.Exists() {
		data.EthernetCfmAlarmConfigDelay = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ethernet.Cisco-IOS-XE-ethernet:cfm.alarm-config.reset"); value.Exists() {
		data.EthernetCfmAlarmConfigReset = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "standby.redirects-config.redirects"); value.Exists() {
		data.StandbyRedirects = types.BoolValue(value.Bool())
	} else {
		data.StandbyRedirects = types.BoolNull()
	}
	if value := res.Get(prefix + "standby.redirects-config.redirect-enable-disable.redirects"); value.Exists() {
		data.StandbyRedirectsEnableDisable = types.StringValue(value.String())
	}
}

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

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

func (data *SystemData) 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 + "hostname"); value.Exists() {
		data.Hostname = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.bgp-community.new-format"); value.Exists() {
		data.IpBgpCommunityNewFormat = types.BoolValue(true)
	} else {
		data.IpBgpCommunityNewFormat = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.routing-conf.routing"); value.Exists() {
		data.IpRouting = types.BoolValue(value.Bool())
	} else {
		data.IpRouting = types.BoolNull()
	}
	if value := res.Get(prefix + "ipv6.unicast-routing"); value.Exists() {
		data.Ipv6UnicastRouting = types.BoolValue(true)
	} else {
		data.Ipv6UnicastRouting = types.BoolValue(false)
	}
	if value := res.Get(prefix + "system.Cisco-IOS-XE-switch:mtu.size"); value.Exists() {
		data.Mtu = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.source-route"); value.Exists() {
		data.IpSourceRoute = types.BoolValue(value.Bool())
	} else {
		data.IpSourceRoute = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.domain.lookup"); value.Exists() {
		data.IpDomainLookup = types.BoolValue(value.Bool())
	} else {
		data.IpDomainLookup = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.domain.name"); value.Exists() {
		data.IpDomainName = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "login.delay"); value.Exists() {
		data.LoginDelay = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "login.on-failure"); value.Exists() {
		data.LoginOnFailure = types.BoolValue(true)
	} else {
		data.LoginOnFailure = types.BoolValue(false)
	}
	if value := res.Get(prefix + "login.on-failure.log"); value.Exists() {
		data.LoginOnFailureLog = types.BoolValue(true)
	} else {
		data.LoginOnFailureLog = types.BoolValue(false)
	}
	if value := res.Get(prefix + "login.on-success"); value.Exists() {
		data.LoginOnSuccess = types.BoolValue(true)
	} else {
		data.LoginOnSuccess = types.BoolValue(false)
	}
	if value := res.Get(prefix + "login.on-success.log"); value.Exists() {
		data.LoginOnSuccessLog = types.BoolValue(true)
	} else {
		data.LoginOnSuccessLog = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-multicast:multicast-routing"); value.Exists() {
		data.IpMulticastRouting = types.BoolValue(true)
	} else {
		data.IpMulticastRouting = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-multicast:mcr-conf.multicast-routing"); value.Exists() {
		data.MulticastRoutingSwitch = types.BoolValue(true)
	} else {
		data.MulticastRoutingSwitch = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-multicast:multicast-routing.distributed"); value.Exists() {
		data.IpMulticastRoutingDistributed = types.BoolValue(true)
	} else {
		data.IpMulticastRoutingDistributed = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-multicast:multicast-routing.vrf"); value.Exists() {
		data.MulticastRoutingVrfs = make([]SystemMulticastRoutingVrfs, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := SystemMulticastRoutingVrfs{}
			if cValue := v.Get("name"); cValue.Exists() {
				item.Vrf = types.StringValue(cValue.String())
			}
			if cValue := v.Get("distributed"); cValue.Exists() {
				item.Distributed = types.BoolValue(true)
			} else {
				item.Distributed = types.BoolValue(false)
			}
			data.MulticastRoutingVrfs = append(data.MulticastRoutingVrfs, item)
			return true
		})
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.access-class"); value.Exists() {
		data.IpHttpAccessClass = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.authentication.aaa"); value.Exists() {
		data.IpHttpAuthenticationAaa = types.BoolValue(true)
	} else {
		data.IpHttpAuthenticationAaa = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.authentication.aaa.exec-authorization"); value.Exists() {
		data.IpHttpAuthenticationAaaExecAuthorization = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.authentication.aaa.login-authentication"); value.Exists() {
		data.IpHttpAuthenticationAaaLoginAuthentication = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.authentication.aaa.command-authorization"); value.Exists() {
		data.IpHttpAuthenticationAaaCommandAuthorization = make([]SystemIpHttpAuthenticationAaaCommandAuthorization, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := SystemIpHttpAuthenticationAaaCommandAuthorization{}
			if cValue := v.Get("level"); cValue.Exists() {
				item.Level = types.Int64Value(cValue.Int())
			}
			if cValue := v.Get("name"); cValue.Exists() {
				item.Name = types.StringValue(cValue.String())
			}
			data.IpHttpAuthenticationAaaCommandAuthorization = append(data.IpHttpAuthenticationAaaCommandAuthorization, item)
			return true
		})
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.authentication.local"); value.Exists() {
		data.IpHttpAuthenticationLocal = types.BoolValue(true)
	} else {
		data.IpHttpAuthenticationLocal = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.server"); value.Exists() {
		data.IpHttpServer = types.BoolValue(value.Bool())
	} else {
		data.IpHttpServer = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.secure-server"); value.Exists() {
		data.IpHttpSecureServer = types.BoolValue(value.Bool())
	} else {
		data.IpHttpSecureServer = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.secure-trustpoint"); value.Exists() {
		data.IpHttpSecureTrustpoint = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.tls-version"); value.Exists() {
		data.IpHttpTlsVersion = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.client.secure-trustpoint"); value.Exists() {
		data.IpHttpClientSecureTrustpoint = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.client.source-interface"); value.Exists() {
		data.IpHttpClientSourceInterface = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.secure-active-session-modules"); value.Exists() {
		data.IpHttpSecureActiveSessionModules = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.max-connections"); value.Exists() {
		data.IpHttpMaxConnections = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-http:http.active-session-modules"); value.Exists() {
		data.IpHttpActiveSessionModules = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.name-server.no-vrf-ordered"); value.Exists() {
		data.IpNameServers = helpers.GetStringList(value.Array())
	} else {
		data.IpNameServers = types.ListNull(types.StringType)
	}
	if value := res.Get(prefix + "ip.name-server.vrf"); value.Exists() {
		data.IpNameServersVrf = make([]SystemIpNameServersVrf, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := SystemIpNameServersVrf{}
			if cValue := v.Get("word"); cValue.Exists() {
				item.Vrf = types.StringValue(cValue.String())
			}
			if cValue := v.Get("server-ip-list-ordered"); cValue.Exists() {
				item.Servers = helpers.GetStringList(cValue.Array())
			} else {
				item.Servers = types.ListNull(types.StringType)
			}
			data.IpNameServersVrf = append(data.IpNameServersVrf, item)
			return true
		})
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.Loopback"); value.Exists() {
		data.IpDomainLookupSourceInterfaceLoopback = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.Vlan"); value.Exists() {
		data.IpDomainLookupSourceInterfaceVlan = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.GigabitEthernet"); value.Exists() {
		data.IpDomainLookupSourceInterfaceGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.TwoGigabitEthernet"); value.Exists() {
		data.IpDomainLookupSourceInterfaceTwoGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.FiveGigabitEthernet"); value.Exists() {
		data.IpDomainLookupSourceInterfaceFiveGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.TenGigabitEthernet"); value.Exists() {
		data.IpDomainLookupSourceInterfaceTenGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.TwentyFiveGigE"); value.Exists() {
		data.IpDomainLookupSourceInterfaceTwentyFiveGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.FortyGigabitEthernet"); value.Exists() {
		data.IpDomainLookupSourceInterfaceFortyGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.domain.lookup-settings.lookup.source-interface.HundredGigE"); value.Exists() {
		data.IpDomainLookupSourceInterfaceHundredGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "cisp.enable"); value.Exists() {
		data.CispEnable = types.BoolValue(true)
	} else {
		data.CispEnable = types.BoolValue(false)
	}
	if value := res.Get(prefix + "epm.logging"); value.Exists() {
		data.EpmLogging = types.BoolValue(true)
	} else {
		data.EpmLogging = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-sanet:access-session.mac-move.deny"); value.Exists() {
		data.AccessSessionMacMoveDeny = types.BoolValue(true)
	} else {
		data.AccessSessionMacMoveDeny = types.BoolValue(false)
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-diagnostics:diagnostic.bootup.level"); value.Exists() {
		data.DiagnosticBootupLevel = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "memory.free.low-watermark.processor"); value.Exists() {
		data.MemoryFreeLowWatermarkProcessor = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "archive.path"); value.Exists() {
		data.ArchivePath = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "archive.maximum"); value.Exists() {
		data.ArchiveMaximum = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "archive.write-memory"); value.Exists() {
		data.ArchiveWriteMemory = types.BoolValue(true)
	} else {
		data.ArchiveWriteMemory = types.BoolValue(false)
	}
	if value := res.Get(prefix + "archive.time-period"); value.Exists() {
		data.ArchiveTimePeriod = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "archive.log.config.logging.enable"); value.Exists() {
		data.ArchiveLogConfigLoggingEnable = types.BoolValue(true)
	} else {
		data.ArchiveLogConfigLoggingEnable = types.BoolValue(false)
	}
	if value := res.Get(prefix + "archive.log.config.logging.size"); value.Exists() {
		data.ArchiveLogConfigLoggingSize = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "redundancy"); value.Exists() {
		data.Redundancy = types.BoolValue(true)
	} else {
		data.Redundancy = types.BoolValue(false)
	}
	if value := res.Get(prefix + "redundancy.mode"); value.Exists() {
		data.RedundancyMode = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "transceivers.type.all.monitoring-enable.monitoring"); value.Exists() {
		data.TransceiverTypeAllMonitoring = types.BoolValue(true)
	} else {
		data.TransceiverTypeAllMonitoring = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.forward-protocol-v2.nd"); value.Exists() {
		data.IpForwardProtocolNd = types.BoolValue(value.Bool())
	} else {
		data.IpForwardProtocolNd = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.scp.server.enable"); value.Exists() {
		data.IpScpServerEnable = types.BoolValue(true)
	} else {
		data.IpScpServerEnable = types.BoolValue(false)
	}
	if value := res.Get(prefix + "ip.ssh.ssh-version"); value.Exists() {
		data.IpSshVersion = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.ssh.version"); value.Exists() {
		data.IpSshVersionLegacy = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.ssh.time-out"); value.Exists() {
		data.IpSshTimeOut = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.ssh.authentication-retries"); value.Exists() {
		data.IpSshAuthenticationRetries = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.Loopback"); value.Exists() {
		data.IpSshSourceInterfaceLoopback = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.Vlan"); value.Exists() {
		data.IpSshSourceInterfaceVlan = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.GigabitEthernet"); value.Exists() {
		data.IpSshSourceInterfaceGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.TwoGigabitEthernet"); value.Exists() {
		data.IpSshSourceInterfaceTwoGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.FiveGigabitEthernet"); value.Exists() {
		data.IpSshSourceInterfaceFiveGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.TenGigabitEthernet"); value.Exists() {
		data.IpSshSourceInterfaceTenGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.TwentyFiveGigE"); value.Exists() {
		data.IpSshSourceInterfaceTwentyFiveGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.FortyGigabitEthernet"); value.Exists() {
		data.IpSshSourceInterfaceFortyGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.ssh.source-interface-config.HundredGigE"); value.Exists() {
		data.IpSshSourceInterfaceHundredGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "control-plane.Cisco-IOS-XE-policy:service-policy.input"); value.Exists() {
		data.ControlPlaneServicePolicyInput = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-pnp:pnp.profile"); value.Exists() {
		data.PnpProfiles = make([]SystemPnpProfiles, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := SystemPnpProfiles{}
			if cValue := v.Get("name"); cValue.Exists() {
				item.Name = types.StringValue(cValue.String())
			}
			if cValue := v.Get("transport.https.ipv4.ipv4-address"); cValue.Exists() {
				item.TransportHttpsIpv4Ipv4Address = types.StringValue(cValue.String())
			}
			if cValue := v.Get("transport.https.ipv4.port"); cValue.Exists() {
				item.TransportHttpsIpv4Port = types.Int64Value(cValue.Int())
			}
			data.PnpProfiles = append(data.PnpProfiles, item)
			return true
		})
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.Loopback"); value.Exists() {
		data.IpTacacsSourceInterfaceLoopback = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.Vlan"); value.Exists() {
		data.IpTacacsSourceInterfaceVlan = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.GigabitEthernet"); value.Exists() {
		data.IpTacacsSourceInterfaceGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.TwoGigabitEthernet"); value.Exists() {
		data.IpTacacsSourceInterfaceTwoGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.FiveGigabitEthernet"); value.Exists() {
		data.IpTacacsSourceInterfaceFiveGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.TenGigabitEthernet"); value.Exists() {
		data.IpTacacsSourceInterfaceTenGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.TwentyFiveGigE"); value.Exists() {
		data.IpTacacsSourceInterfaceTwentyFiveGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.FortyGigabitEthernet"); value.Exists() {
		data.IpTacacsSourceInterfaceFortyGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.HundredGigE"); value.Exists() {
		data.IpTacacsSourceInterfaceHundredGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:tacacs.source-interface.vrf"); value.Exists() {
		data.IpTacacsSourceInterfaceVrf = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.Loopback"); value.Exists() {
		data.IpRadiusSourceInterfaceLoopback = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.Vlan"); value.Exists() {
		data.IpRadiusSourceInterfaceVlan = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.GigabitEthernet"); value.Exists() {
		data.IpRadiusSourceInterfaceGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.TwoGigabitEthernet"); value.Exists() {
		data.IpRadiusSourceInterfaceTwoGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.FiveGigabitEthernet"); value.Exists() {
		data.IpRadiusSourceInterfaceFiveGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.TenGigabitEthernet"); value.Exists() {
		data.IpRadiusSourceInterfaceTenGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.TwentyFiveGigE"); value.Exists() {
		data.IpRadiusSourceInterfaceTwentyFiveGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.FortyGigabitEthernet"); value.Exists() {
		data.IpRadiusSourceInterfaceFortyGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.HundredGigE"); value.Exists() {
		data.IpRadiusSourceInterfaceHundredGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-aaa:radius.source-interface.vrf"); value.Exists() {
		data.IpRadiusSourceInterfaceVrf = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "boot.system.flash.flash-list-ordered-by-user"); value.Exists() {
		data.BootSystemFlashFiles = make([]SystemBootSystemFlashFiles, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := SystemBootSystemFlashFiles{}
			if cValue := v.Get("flash-leaf"); cValue.Exists() {
				item.Path = types.StringValue(cValue.String())
			}
			data.BootSystemFlashFiles = append(data.BootSystemFlashFiles, item)
			return true
		})
	}
	if value := res.Get(prefix + "boot.system.bootfile.filename-list-ordered-by-user"); value.Exists() {
		data.BootSystemBootfiles = make([]SystemBootSystemBootfiles, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := SystemBootSystemBootfiles{}
			if cValue := v.Get("filename"); cValue.Exists() {
				item.Path = types.StringValue(cValue.String())
			}
			data.BootSystemBootfiles = append(data.BootSystemBootfiles, item)
			return true
		})
	}
	if value := res.Get(prefix + "enable.secret.secret"); value.Exists() {
		data.EnableSecret = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "enable.secret.type"); value.Exists() {
		data.EnableSecretType = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "enable.secret.level"); value.Exists() {
		data.EnableSecretLevel = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.host.host-list"); value.Exists() {
		data.IpHosts = make([]SystemIpHosts, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := SystemIpHosts{}
			if cValue := v.Get("name"); cValue.Exists() {
				item.Name = types.StringValue(cValue.String())
			}
			if cValue := v.Get("ip-list-ordered"); cValue.Exists() {
				item.Ips = helpers.GetStringList(cValue.Array())
			} else {
				item.Ips = types.ListNull(types.StringType)
			}
			data.IpHosts = append(data.IpHosts, item)
			return true
		})
	}
	if value := res.Get(prefix + "ip.host.vrf"); value.Exists() {
		data.IpHostsVrf = make([]SystemIpHostsVrf, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := SystemIpHostsVrf{}
			if cValue := v.Get("vrf-name"); cValue.Exists() {
				item.Vrf = types.StringValue(cValue.String())
			}
			if cValue := v.Get("host-name"); cValue.Exists() {
				item.Hosts = make([]SystemIpHostsVrfHosts, 0)
				cValue.ForEach(func(ck, cv gjson.Result) bool {
					cItem := SystemIpHostsVrfHosts{}
					if ccValue := cv.Get("host-name"); ccValue.Exists() {
						cItem.Name = types.StringValue(ccValue.String())
					}
					if ccValue := cv.Get("ip-list"); ccValue.Exists() {
						cItem.Ips = helpers.GetStringList(ccValue.Array())
					} else {
						cItem.Ips = types.ListNull(types.StringType)
					}
					item.Hosts = append(item.Hosts, cItem)
					return true
				})
			}
			data.IpHostsVrf = append(data.IpHostsVrf, item)
			return true
		})
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-diagnostics:diagnostic.event-log.size"); value.Exists() {
		data.DiagnosticEventLogSize = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "subscriber.templating"); value.Exists() {
		data.SubscriberTemplating = types.BoolValue(true)
	} else {
		data.SubscriberTemplating = types.BoolValue(false)
	}
	if value := res.Get(prefix + "call-home.Cisco-IOS-XE-call-home:contact-email-addr"); value.Exists() {
		data.CallHomeContactEmail = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "call-home.Cisco-IOS-XE-call-home:tac-profile.profile.CiscoTAC-1.active"); value.Exists() {
		data.CallHomeCiscoTac1ProfileActive = types.BoolValue(value.Bool())
	} else {
		data.CallHomeCiscoTac1ProfileActive = types.BoolNull()
	}
	if value := res.Get(prefix + "call-home.Cisco-IOS-XE-call-home:tac-profile.profile.CiscoTAC-1.destination.transport-method"); value.Exists() {
		data.CallHomeCiscoTac1DestinationTransportMethod = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.ftp.passive-enable"); value.Exists() {
		data.IpFtpPassive = types.BoolValue(value.Bool())
	} else {
		data.IpFtpPassive = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.tftp.source-interface.GigabitEthernet"); value.Exists() {
		data.TftpSourceInterfaceGigabitEthernet = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.tftp.source-interface.Loopback"); value.Exists() {
		data.TftpSourceInterfaceLoopback = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "multilink.Cisco-IOS-XE-ppp:bundle-name"); value.Exists() {
		data.MultilinkPppBundleName = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "version"); value.Exists() {
		data.Version = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "track.Cisco-IOS-XE-track:tracked-object-v2"); value.Exists() {
		data.TrackObjects = make([]SystemTrackObjects, 0)
		value.ForEach(func(k, v gjson.Result) bool {
			item := SystemTrackObjects{}
			if cValue := v.Get("object-number"); cValue.Exists() {
				item.Number = types.StringValue(cValue.String())
			}
			if cValue := v.Get("ip.sla.number"); cValue.Exists() {
				item.IpSlaNumber = types.Int64Value(cValue.Int())
			}
			if cValue := v.Get("ip.sla.reachability"); cValue.Exists() {
				item.IpSlaReachability = types.BoolValue(true)
			} else {
				item.IpSlaReachability = types.BoolValue(false)
			}
			data.TrackObjects = append(data.TrackObjects, item)
			return true
		})
	}
	if value := res.Get(prefix + "ip.Cisco-IOS-XE-nbar:nbar.classification.dns.classify-by-domain-with-default"); value.Exists() {
		data.IpNbarClassificationDnsClassifyByDomain = types.BoolValue(value.Bool())
	} else {
		data.IpNbarClassificationDnsClassifyByDomain = types.BoolNull()
	}
	if value := res.Get(prefix + "ip.multicast.Cisco-IOS-XE-multicast:route-limit-container.routelimit"); value.Exists() {
		data.IpMulticastRouteLimit = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "Cisco-IOS-XE-aaa:security.passwords.min-length"); value.Exists() {
		data.SecurityPasswordsMinLength = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ip.domain.list.domain-name"); value.Exists() {
		data.IpDomainListNames = helpers.GetStringList(value.Array())
	} else {
		data.IpDomainListNames = types.ListNull(types.StringType)
	}
	if value := res.Get(prefix + "ip.domain.list.vrf.domain-name"); value.Exists() {
		data.IpDomainListVrfDomain = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ip.domain.list.vrf.vrf-name"); value.Exists() {
		data.IpDomainListVrf = types.StringValue(value.String())
	}
	if value := res.Get(prefix + "ethernet.Cisco-IOS-XE-ethernet:cfm.alarm-config.delay"); value.Exists() {
		data.EthernetCfmAlarmConfigDelay = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "ethernet.Cisco-IOS-XE-ethernet:cfm.alarm-config.reset"); value.Exists() {
		data.EthernetCfmAlarmConfigReset = types.Int64Value(value.Int())
	}
	if value := res.Get(prefix + "standby.redirects-config.redirects"); value.Exists() {
		data.StandbyRedirects = types.BoolValue(value.Bool())
	} else {
		data.StandbyRedirects = types.BoolNull()
	}
	if value := res.Get(prefix + "standby.redirects-config.redirect-enable-disable.redirects"); value.Exists() {
		data.StandbyRedirectsEnableDisable = types.StringValue(value.String())
	}
}

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

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

func (data *System) getDeletedItems(ctx context.Context, state System) []string {
	deletedItems := make([]string, 0)
	if !state.StandbyRedirectsEnableDisable.IsNull() && data.StandbyRedirectsEnableDisable.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/standby/redirects-config/redirect-enable-disable/redirects", state.getPath()))
	}
	if !state.StandbyRedirects.IsNull() && data.StandbyRedirects.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/standby/redirects-config/redirects", state.getPath()))
	}
	if !state.EthernetCfmAlarmConfigReset.IsNull() && data.EthernetCfmAlarmConfigReset.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ethernet/Cisco-IOS-XE-ethernet:cfm/alarm-config/reset", state.getPath()))
	}
	if !state.EthernetCfmAlarmConfigDelay.IsNull() && data.EthernetCfmAlarmConfigDelay.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ethernet/Cisco-IOS-XE-ethernet:cfm/alarm-config/delay", state.getPath()))
	}
	if !state.IpDomainListVrf.IsNull() && data.IpDomainListVrf.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/domain/list/vrf/vrf-name", state.getPath()))
	}
	if !state.IpDomainListVrfDomain.IsNull() && data.IpDomainListVrfDomain.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/domain/list/vrf/domain-name", state.getPath()))
	}
	if !state.IpDomainListNames.IsNull() {
		if data.IpDomainListNames.IsNull() {
			deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/domain/list/domain-name", state.getPath()))
		} else {
			var dataValues, stateValues []string
			data.IpDomainListNames.ElementsAs(ctx, &dataValues, false)
			state.IpDomainListNames.ElementsAs(ctx, &stateValues, false)
			for _, v := range stateValues {
				found := false
				for _, vv := range dataValues {
					if v == vv {
						found = true
						break
					}
				}
				if !found {
					deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/domain/list/domain-name=%v", state.getPath(), v))
				}
			}
		}
	}
	if !state.SecurityPasswordsMinLength.IsNull() && data.SecurityPasswordsMinLength.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-aaa:security/passwords/min-length", state.getPath()))
	}
	if !state.IpMulticastRouteLimit.IsNull() && data.IpMulticastRouteLimit.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/multicast/Cisco-IOS-XE-multicast:route-limit-container/routelimit", state.getPath()))
	}
	if !state.IpNbarClassificationDnsClassifyByDomain.IsNull() && data.IpNbarClassificationDnsClassifyByDomain.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-nbar:nbar/classification/dns/classify-by-domain-with-default", state.getPath()))
	}
	for i := range state.TrackObjects {
		stateKeyValues := [...]string{state.TrackObjects[i].Number.ValueString()}

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

		found := false
		for j := range data.TrackObjects {
			found = true
			if state.TrackObjects[i].Number.ValueString() != data.TrackObjects[j].Number.ValueString() {
				found = false
			}
			if found {
				if !state.TrackObjects[i].IpSlaReachability.IsNull() && data.TrackObjects[j].IpSlaReachability.IsNull() {
					deletedItems = append(deletedItems, fmt.Sprintf("%v/track/Cisco-IOS-XE-track:tracked-object-v2=%v/ip/sla/reachability", state.getPath(), strings.Join(stateKeyValues[:], ",")))
				}
				if !state.TrackObjects[i].IpSlaNumber.IsNull() && data.TrackObjects[j].IpSlaNumber.IsNull() {
					deletedItems = append(deletedItems, fmt.Sprintf("%v/track/Cisco-IOS-XE-track:tracked-object-v2=%v/ip/sla/number", state.getPath(), strings.Join(stateKeyValues[:], ",")))
				}
				break
			}
		}
		if !found {
			deletedItems = append(deletedItems, fmt.Sprintf("%v/track/Cisco-IOS-XE-track:tracked-object-v2=%v", state.getPath(), strings.Join(stateKeyValues[:], ",")))
		}
	}
	if !state.Version.IsNull() && data.Version.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/version", state.getPath()))
	}
	if !state.MultilinkPppBundleName.IsNull() && data.MultilinkPppBundleName.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/multilink/Cisco-IOS-XE-ppp:bundle-name", state.getPath()))
	}
	if !state.TftpSourceInterfaceLoopback.IsNull() && data.TftpSourceInterfaceLoopback.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/tftp/source-interface/Loopback", state.getPath()))
	}
	if !state.TftpSourceInterfaceGigabitEthernet.IsNull() && data.TftpSourceInterfaceGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/tftp/source-interface/GigabitEthernet", state.getPath()))
	}
	if !state.IpFtpPassive.IsNull() && data.IpFtpPassive.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/ftp/passive-enable", state.getPath()))
	}
	if !state.CallHomeCiscoTac1DestinationTransportMethod.IsNull() && data.CallHomeCiscoTac1DestinationTransportMethod.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/call-home/Cisco-IOS-XE-call-home:tac-profile/profile/CiscoTAC-1/destination/transport-method", state.getPath()))
	}
	if !state.CallHomeCiscoTac1ProfileActive.IsNull() && data.CallHomeCiscoTac1ProfileActive.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/call-home/Cisco-IOS-XE-call-home:tac-profile/profile/CiscoTAC-1/active", state.getPath()))
	}
	if !state.CallHomeContactEmail.IsNull() && data.CallHomeContactEmail.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/call-home/Cisco-IOS-XE-call-home:contact-email-addr", state.getPath()))
	}
	if !state.SubscriberTemplating.IsNull() && data.SubscriberTemplating.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/subscriber/templating", state.getPath()))
	}
	if !state.DiagnosticEventLogSize.IsNull() && data.DiagnosticEventLogSize.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-diagnostics:diagnostic/event-log/size", state.getPath()))
	}
	for i := range state.IpHostsVrf {
		stateKeyValues := [...]string{state.IpHostsVrf[i].Vrf.ValueString()}

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

		found := false
		for j := range data.IpHostsVrf {
			found = true
			if state.IpHostsVrf[i].Vrf.ValueString() != data.IpHostsVrf[j].Vrf.ValueString() {
				found = false
			}
			if found {
				for ci := range state.IpHostsVrf[i].Hosts {
					cstateKeyValues := [...]string{state.IpHostsVrf[i].Hosts[ci].Name.ValueString()}

					cemptyKeys := true
					if !reflect.ValueOf(state.IpHostsVrf[i].Hosts[ci].Name.ValueString()).IsZero() {
						cemptyKeys = false
					}
					if cemptyKeys {
						continue
					}

					found := false
					for cj := range data.IpHostsVrf[j].Hosts {
						found = true
						if state.IpHostsVrf[i].Hosts[ci].Name.ValueString() != data.IpHostsVrf[j].Hosts[cj].Name.ValueString() {
							found = false
						}
						if found {
							if !state.IpHostsVrf[i].Hosts[ci].Ips.IsNull() {
								if data.IpHostsVrf[j].Hosts[cj].Ips.IsNull() {
									deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/host/vrf=%v/host-name=%v/ip-list", state.getPath(), strings.Join(stateKeyValues[:], ","), strings.Join(cstateKeyValues[:], ",")))
								} else {
									var dataValues, stateValues []string
									data.IpHostsVrf[i].Hosts[ci].Ips.ElementsAs(ctx, &dataValues, false)
									state.IpHostsVrf[j].Hosts[cj].Ips.ElementsAs(ctx, &stateValues, false)
									for _, v := range stateValues {
										found := false
										for _, vv := range dataValues {
											if v == vv {
												found = true
												break
											}
										}
										if !found {
											deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/host/vrf=%v/host-name=%v/ip-list=%v", state.getPath(), strings.Join(stateKeyValues[:], ","), strings.Join(cstateKeyValues[:], ","), v))
										}
									}
								}
							}
							break
						}
					}
					if !found {
						deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/host/vrf=%v/host-name=%v", state.getPath(), strings.Join(stateKeyValues[:], ","), strings.Join(cstateKeyValues[:], ",")))
					}
				}
				break
			}
		}
		if !found {
			deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/host/vrf=%v", state.getPath(), strings.Join(stateKeyValues[:], ",")))
		}
	}
	for i := range state.IpHosts {
		stateKeyValues := [...]string{state.IpHosts[i].Name.ValueString()}

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

		found := false
		for j := range data.IpHosts {
			found = true
			if state.IpHosts[i].Name.ValueString() != data.IpHosts[j].Name.ValueString() {
				found = false
			}
			if found {
				if !state.IpHosts[i].Ips.IsNull() {
					if data.IpHosts[j].Ips.IsNull() {
						deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/host/host-list=%v/ip-list-ordered", state.getPath(), strings.Join(stateKeyValues[:], ",")))
					} else {
						var dataValues, stateValues []string
						data.IpHosts[i].Ips.ElementsAs(ctx, &dataValues, false)
						state.IpHosts[j].Ips.ElementsAs(ctx, &stateValues, false)
						for _, v := range stateValues {
							found := false
							for _, vv := range dataValues {
								if v == vv {
									found = true
									break
								}
							}
							if !found {
								deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/host/host-list=%v/ip-list-ordered=%v", state.getPath(), strings.Join(stateKeyValues[:], ","), v))
							}
						}
					}
				}
				break
			}
		}
		if !found {
			deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/host/host-list=%v", state.getPath(), strings.Join(stateKeyValues[:], ",")))
		}
	}
	if !state.EnableSecretLevel.IsNull() && data.EnableSecretLevel.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/enable/secret/level", state.getPath()))
	}
	if !state.EnableSecretType.IsNull() && data.EnableSecretType.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/enable/secret/type", state.getPath()))
	}
	if !state.EnableSecret.IsNull() && data.EnableSecret.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/enable/secret", state.getPath()))
	}
	for i := range state.BootSystemBootfiles {
		stateKeyValues := [...]string{state.BootSystemBootfiles[i].Path.ValueString()}

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

		found := false
		for j := range data.BootSystemBootfiles {
			found = true
			if state.BootSystemBootfiles[i].Path.ValueString() != data.BootSystemBootfiles[j].Path.ValueString() {
				found = false
			}
			if found {
				break
			}
		}
		if !found {
			deletedItems = append(deletedItems, fmt.Sprintf("%v/boot/system/bootfile/filename-list-ordered-by-user=%v", state.getPath(), strings.Join(stateKeyValues[:], ",")))
		}
	}
	for i := range state.BootSystemFlashFiles {
		stateKeyValues := [...]string{state.BootSystemFlashFiles[i].Path.ValueString()}

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

		found := false
		for j := range data.BootSystemFlashFiles {
			found = true
			if state.BootSystemFlashFiles[i].Path.ValueString() != data.BootSystemFlashFiles[j].Path.ValueString() {
				found = false
			}
			if found {
				break
			}
		}
		if !found {
			deletedItems = append(deletedItems, fmt.Sprintf("%v/boot/system/flash/flash-list-ordered-by-user=%v", state.getPath(), strings.Join(stateKeyValues[:], ",")))
		}
	}
	if !state.IpRadiusSourceInterfaceVrf.IsNull() && data.IpRadiusSourceInterfaceVrf.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:radius/source-interface/vrf", state.getPath()))
	}
	if !state.IpRadiusSourceInterfaceHundredGigabitEthernet.IsNull() && data.IpRadiusSourceInterfaceHundredGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:radius/source-interface/HundredGigE", state.getPath()))
	}
	if !state.IpRadiusSourceInterfaceFortyGigabitEthernet.IsNull() && data.IpRadiusSourceInterfaceFortyGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:radius/source-interface/FortyGigabitEthernet", state.getPath()))
	}
	if !state.IpRadiusSourceInterfaceTwentyFiveGigabitEthernet.IsNull() && data.IpRadiusSourceInterfaceTwentyFiveGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:radius/source-interface/TwentyFiveGigE", state.getPath()))
	}
	if !state.IpRadiusSourceInterfaceTenGigabitEthernet.IsNull() && data.IpRadiusSourceInterfaceTenGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:radius/source-interface/TenGigabitEthernet", state.getPath()))
	}
	if !state.IpRadiusSourceInterfaceFiveGigabitEthernet.IsNull() && data.IpRadiusSourceInterfaceFiveGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:radius/source-interface/FiveGigabitEthernet", state.getPath()))
	}
	if !state.IpRadiusSourceInterfaceTwoGigabitEthernet.IsNull() && data.IpRadiusSourceInterfaceTwoGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:radius/source-interface/TwoGigabitEthernet", state.getPath()))
	}
	if !state.IpRadiusSourceInterfaceGigabitEthernet.IsNull() && data.IpRadiusSourceInterfaceGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:radius/source-interface/GigabitEthernet", state.getPath()))
	}
	if !state.IpRadiusSourceInterfaceVlan.IsNull() && data.IpRadiusSourceInterfaceVlan.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:radius/source-interface/Vlan", state.getPath()))
	}
	if !state.IpRadiusSourceInterfaceLoopback.IsNull() && data.IpRadiusSourceInterfaceLoopback.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:radius/source-interface/Loopback", state.getPath()))
	}
	if !state.IpTacacsSourceInterfaceVrf.IsNull() && data.IpTacacsSourceInterfaceVrf.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:tacacs/source-interface/vrf", state.getPath()))
	}
	if !state.IpTacacsSourceInterfaceHundredGigabitEthernet.IsNull() && data.IpTacacsSourceInterfaceHundredGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:tacacs/source-interface/HundredGigE", state.getPath()))
	}
	if !state.IpTacacsSourceInterfaceFortyGigabitEthernet.IsNull() && data.IpTacacsSourceInterfaceFortyGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:tacacs/source-interface/FortyGigabitEthernet", state.getPath()))
	}
	if !state.IpTacacsSourceInterfaceTwentyFiveGigabitEthernet.IsNull() && data.IpTacacsSourceInterfaceTwentyFiveGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:tacacs/source-interface/TwentyFiveGigE", state.getPath()))
	}
	if !state.IpTacacsSourceInterfaceTenGigabitEthernet.IsNull() && data.IpTacacsSourceInterfaceTenGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:tacacs/source-interface/TenGigabitEthernet", state.getPath()))
	}
	if !state.IpTacacsSourceInterfaceFiveGigabitEthernet.IsNull() && data.IpTacacsSourceInterfaceFiveGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:tacacs/source-interface/FiveGigabitEthernet", state.getPath()))
	}
	if !state.IpTacacsSourceInterfaceTwoGigabitEthernet.IsNull() && data.IpTacacsSourceInterfaceTwoGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:tacacs/source-interface/TwoGigabitEthernet", state.getPath()))
	}
	if !state.IpTacacsSourceInterfaceGigabitEthernet.IsNull() && data.IpTacacsSourceInterfaceGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:tacacs/source-interface/GigabitEthernet", state.getPath()))
	}
	if !state.IpTacacsSourceInterfaceVlan.IsNull() && data.IpTacacsSourceInterfaceVlan.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:tacacs/source-interface/Vlan", state.getPath()))
	}
	if !state.IpTacacsSourceInterfaceLoopback.IsNull() && data.IpTacacsSourceInterfaceLoopback.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:tacacs/source-interface/Loopback", state.getPath()))
	}
	for i := range state.PnpProfiles {
		stateKeyValues := [...]string{state.PnpProfiles[i].Name.ValueString()}

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

		found := false
		for j := range data.PnpProfiles {
			found = true
			if state.PnpProfiles[i].Name.ValueString() != data.PnpProfiles[j].Name.ValueString() {
				found = false
			}
			if found {
				if !state.PnpProfiles[i].TransportHttpsIpv4Port.IsNull() && data.PnpProfiles[j].TransportHttpsIpv4Port.IsNull() {
					deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-pnp:pnp/profile=%v/transport/https/ipv4/port", state.getPath(), strings.Join(stateKeyValues[:], ",")))
				}
				if !state.PnpProfiles[i].TransportHttpsIpv4Ipv4Address.IsNull() && data.PnpProfiles[j].TransportHttpsIpv4Ipv4Address.IsNull() {
					deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-pnp:pnp/profile=%v/transport/https/ipv4/ipv4-address", state.getPath(), strings.Join(stateKeyValues[:], ",")))
				}
				break
			}
		}
		if !found {
			deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-pnp:pnp/profile=%v", state.getPath(), strings.Join(stateKeyValues[:], ",")))
		}
	}
	if !state.ControlPlaneServicePolicyInput.IsNull() && data.ControlPlaneServicePolicyInput.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/control-plane/Cisco-IOS-XE-policy:service-policy/input", state.getPath()))
	}
	if !state.IpSshSourceInterfaceHundredGigabitEthernet.IsNull() && data.IpSshSourceInterfaceHundredGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/ssh/source-interface-config/HundredGigE", state.getPath()))
	}
	if !state.IpSshSourceInterfaceFortyGigabitEthernet.IsNull() && data.IpSshSourceInterfaceFortyGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/ssh/source-interface-config/FortyGigabitEthernet", state.getPath()))
	}
	if !state.IpSshSourceInterfaceTwentyFiveGigabitEthernet.IsNull() && data.IpSshSourceInterfaceTwentyFiveGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/ssh/source-interface-config/TwentyFiveGigE", state.getPath()))
	}
	if !state.IpSshSourceInterfaceTenGigabitEthernet.IsNull() && data.IpSshSourceInterfaceTenGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/ssh/source-interface-config/TenGigabitEthernet", state.getPath()))
	}
	if !state.IpSshSourceInterfaceFiveGigabitEthernet.IsNull() && data.IpSshSourceInterfaceFiveGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/ssh/source-interface-config/FiveGigabitEthernet", state.getPath()))
	}
	if !state.IpSshSourceInterfaceTwoGigabitEthernet.IsNull() && data.IpSshSourceInterfaceTwoGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/ssh/source-interface-config/TwoGigabitEthernet", state.getPath()))
	}
	if !state.IpSshSourceInterfaceGigabitEthernet.IsNull() && data.IpSshSourceInterfaceGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/ssh/source-interface-config/GigabitEthernet", state.getPath()))
	}
	if !state.IpSshSourceInterfaceVlan.IsNull() && data.IpSshSourceInterfaceVlan.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/ssh/source-interface-config/Vlan", state.getPath()))
	}
	if !state.IpSshSourceInterfaceLoopback.IsNull() && data.IpSshSourceInterfaceLoopback.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/ssh/source-interface-config/Loopback", state.getPath()))
	}
	if !state.IpSshAuthenticationRetries.IsNull() && data.IpSshAuthenticationRetries.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/ssh/authentication-retries", state.getPath()))
	}
	if !state.IpSshTimeOut.IsNull() && data.IpSshTimeOut.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/ssh/time-out", state.getPath()))
	}
	if !state.IpSshVersionLegacy.IsNull() && data.IpSshVersionLegacy.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/ssh/version", state.getPath()))
	}
	if !state.IpSshVersion.IsNull() && data.IpSshVersion.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/ssh/ssh-version", state.getPath()))
	}
	if !state.IpScpServerEnable.IsNull() && data.IpScpServerEnable.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/scp/server/enable", state.getPath()))
	}
	if !state.IpForwardProtocolNd.IsNull() && data.IpForwardProtocolNd.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/forward-protocol-v2/nd", state.getPath()))
	}
	if !state.TransceiverTypeAllMonitoring.IsNull() && data.TransceiverTypeAllMonitoring.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/transceivers/type/all/monitoring-enable/monitoring", state.getPath()))
	}
	if !state.RedundancyMode.IsNull() && data.RedundancyMode.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/redundancy/mode", state.getPath()))
	}
	if !state.Redundancy.IsNull() && data.Redundancy.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/redundancy", state.getPath()))
	}
	if !state.ArchiveLogConfigLoggingSize.IsNull() && data.ArchiveLogConfigLoggingSize.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/archive/log/config/logging/size", state.getPath()))
	}
	if !state.ArchiveLogConfigLoggingEnable.IsNull() && data.ArchiveLogConfigLoggingEnable.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/archive/log/config/logging/enable", state.getPath()))
	}
	if !state.ArchiveTimePeriod.IsNull() && data.ArchiveTimePeriod.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/archive/time-period", state.getPath()))
	}
	if !state.ArchiveWriteMemory.IsNull() && data.ArchiveWriteMemory.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/archive/write-memory", state.getPath()))
	}
	if !state.ArchiveMaximum.IsNull() && data.ArchiveMaximum.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/archive/maximum", state.getPath()))
	}
	if !state.ArchivePath.IsNull() && data.ArchivePath.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/archive/path", state.getPath()))
	}
	if !state.MemoryFreeLowWatermarkProcessor.IsNull() && data.MemoryFreeLowWatermarkProcessor.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/memory/free/low-watermark/processor", state.getPath()))
	}
	if !state.DiagnosticBootupLevel.IsNull() && data.DiagnosticBootupLevel.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-diagnostics:diagnostic/bootup/level", state.getPath()))
	}
	if !state.AccessSessionMacMoveDeny.IsNull() && data.AccessSessionMacMoveDeny.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:access-session/mac-move/deny", state.getPath()))
	}
	if !state.EpmLogging.IsNull() && data.EpmLogging.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/epm/logging", state.getPath()))
	}
	if !state.CispEnable.IsNull() && data.CispEnable.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/cisp/enable", state.getPath()))
	}
	if !state.IpDomainLookupSourceInterfaceHundredGigabitEthernet.IsNull() && data.IpDomainLookupSourceInterfaceHundredGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/domain/lookup-settings/lookup/source-interface/HundredGigE", state.getPath()))
	}
	if !state.IpDomainLookupSourceInterfaceFortyGigabitEthernet.IsNull() && data.IpDomainLookupSourceInterfaceFortyGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/domain/lookup-settings/lookup/source-interface/FortyGigabitEthernet", state.getPath()))
	}
	if !state.IpDomainLookupSourceInterfaceTwentyFiveGigabitEthernet.IsNull() && data.IpDomainLookupSourceInterfaceTwentyFiveGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/domain/lookup-settings/lookup/source-interface/TwentyFiveGigE", state.getPath()))
	}
	if !state.IpDomainLookupSourceInterfaceTenGigabitEthernet.IsNull() && data.IpDomainLookupSourceInterfaceTenGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/domain/lookup-settings/lookup/source-interface/TenGigabitEthernet", state.getPath()))
	}
	if !state.IpDomainLookupSourceInterfaceFiveGigabitEthernet.IsNull() && data.IpDomainLookupSourceInterfaceFiveGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/domain/lookup-settings/lookup/source-interface/FiveGigabitEthernet", state.getPath()))
	}
	if !state.IpDomainLookupSourceInterfaceTwoGigabitEthernet.IsNull() && data.IpDomainLookupSourceInterfaceTwoGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/domain/lookup-settings/lookup/source-interface/TwoGigabitEthernet", state.getPath()))
	}
	if !state.IpDomainLookupSourceInterfaceGigabitEthernet.IsNull() && data.IpDomainLookupSourceInterfaceGigabitEthernet.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/domain/lookup-settings/lookup/source-interface/GigabitEthernet", state.getPath()))
	}
	if !state.IpDomainLookupSourceInterfaceVlan.IsNull() && data.IpDomainLookupSourceInterfaceVlan.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/domain/lookup-settings/lookup/source-interface/Vlan", state.getPath()))
	}
	if !state.IpDomainLookupSourceInterfaceLoopback.IsNull() && data.IpDomainLookupSourceInterfaceLoopback.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/domain/lookup-settings/lookup/source-interface/Loopback", state.getPath()))
	}
	for i := range state.IpNameServersVrf {
		stateKeyValues := [...]string{state.IpNameServersVrf[i].Vrf.ValueString()}

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

		found := false
		for j := range data.IpNameServersVrf {
			found = true
			if state.IpNameServersVrf[i].Vrf.ValueString() != data.IpNameServersVrf[j].Vrf.ValueString() {
				found = false
			}
			if found {
				if !state.IpNameServersVrf[i].Servers.IsNull() {
					if data.IpNameServersVrf[j].Servers.IsNull() {
						deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/name-server/vrf=%v/server-ip-list-ordered", state.getPath(), strings.Join(stateKeyValues[:], ",")))
					} else {
						var dataValues, stateValues []string
						data.IpNameServersVrf[i].Servers.ElementsAs(ctx, &dataValues, false)
						state.IpNameServersVrf[j].Servers.ElementsAs(ctx, &stateValues, false)
						for _, v := range stateValues {
							found := false
							for _, vv := range dataValues {
								if v == vv {
									found = true
									break
								}
							}
							if !found {
								deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/name-server/vrf=%v/server-ip-list-ordered=%v", state.getPath(), strings.Join(stateKeyValues[:], ","), v))
							}
						}
					}
				}
				break
			}
		}
		if !found {
			deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/name-server/vrf=%v", state.getPath(), strings.Join(stateKeyValues[:], ",")))
		}
	}
	if !state.IpNameServers.IsNull() {
		if data.IpNameServers.IsNull() {
			deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/name-server/no-vrf-ordered", state.getPath()))
		} else {
			var dataValues, stateValues []string
			data.IpNameServers.ElementsAs(ctx, &dataValues, false)
			state.IpNameServers.ElementsAs(ctx, &stateValues, false)
			for _, v := range stateValues {
				found := false
				for _, vv := range dataValues {
					if v == vv {
						found = true
						break
					}
				}
				if !found {
					deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/name-server/no-vrf-ordered=%v", state.getPath(), v))
				}
			}
		}
	}
	if !state.IpHttpActiveSessionModules.IsNull() && data.IpHttpActiveSessionModules.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/active-session-modules", state.getPath()))
	}
	if !state.IpHttpMaxConnections.IsNull() && data.IpHttpMaxConnections.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/max-connections", state.getPath()))
	}
	if !state.IpHttpSecureActiveSessionModules.IsNull() && data.IpHttpSecureActiveSessionModules.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/secure-active-session-modules", state.getPath()))
	}
	if !state.IpHttpClientSourceInterface.IsNull() && data.IpHttpClientSourceInterface.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/client/source-interface", state.getPath()))
	}
	if !state.IpHttpClientSecureTrustpoint.IsNull() && data.IpHttpClientSecureTrustpoint.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/client/secure-trustpoint", state.getPath()))
	}
	if !state.IpHttpTlsVersion.IsNull() && data.IpHttpTlsVersion.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/tls-version", state.getPath()))
	}
	if !state.IpHttpSecureTrustpoint.IsNull() && data.IpHttpSecureTrustpoint.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/secure-trustpoint", state.getPath()))
	}
	if !state.IpHttpSecureServer.IsNull() && data.IpHttpSecureServer.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/secure-server", state.getPath()))
	}
	if !state.IpHttpServer.IsNull() && data.IpHttpServer.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/server", state.getPath()))
	}
	if !state.IpHttpAuthenticationLocal.IsNull() && data.IpHttpAuthenticationLocal.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/authentication/local", state.getPath()))
	}
	for i := range state.IpHttpAuthenticationAaaCommandAuthorization {
		stateKeyValues := [...]string{strconv.FormatInt(state.IpHttpAuthenticationAaaCommandAuthorization[i].Level.ValueInt64(), 10)}

		emptyKeys := true
		if !reflect.ValueOf(state.IpHttpAuthenticationAaaCommandAuthorization[i].Level.ValueInt64()).IsZero() {
			emptyKeys = false
		}
		if emptyKeys {
			continue
		}

		found := false
		for j := range data.IpHttpAuthenticationAaaCommandAuthorization {
			found = true
			if state.IpHttpAuthenticationAaaCommandAuthorization[i].Level.ValueInt64() != data.IpHttpAuthenticationAaaCommandAuthorization[j].Level.ValueInt64() {
				found = false
			}
			if found {
				if !state.IpHttpAuthenticationAaaCommandAuthorization[i].Name.IsNull() && data.IpHttpAuthenticationAaaCommandAuthorization[j].Name.IsNull() {
					deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/authentication/aaa/command-authorization=%v/name", state.getPath(), strings.Join(stateKeyValues[:], ",")))
				}
				break
			}
		}
		if !found {
			deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/authentication/aaa/command-authorization=%v", state.getPath(), strings.Join(stateKeyValues[:], ",")))
		}
	}
	if !state.IpHttpAuthenticationAaaLoginAuthentication.IsNull() && data.IpHttpAuthenticationAaaLoginAuthentication.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/authentication/aaa/login-authentication", state.getPath()))
	}
	if !state.IpHttpAuthenticationAaaExecAuthorization.IsNull() && data.IpHttpAuthenticationAaaExecAuthorization.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/authentication/aaa/exec-authorization", state.getPath()))
	}
	if !state.IpHttpAuthenticationAaa.IsNull() && data.IpHttpAuthenticationAaa.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/authentication/aaa", state.getPath()))
	}
	if !state.IpHttpAccessClass.IsNull() && data.IpHttpAccessClass.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/access-class", state.getPath()))
	}
	for i := range state.MulticastRoutingVrfs {
		stateKeyValues := [...]string{state.MulticastRoutingVrfs[i].Vrf.ValueString()}

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

		found := false
		for j := range data.MulticastRoutingVrfs {
			found = true
			if state.MulticastRoutingVrfs[i].Vrf.ValueString() != data.MulticastRoutingVrfs[j].Vrf.ValueString() {
				found = false
			}
			if found {
				if !state.MulticastRoutingVrfs[i].Distributed.IsNull() && data.MulticastRoutingVrfs[j].Distributed.IsNull() {
					deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-multicast:multicast-routing/vrf=%v/distributed", state.getPath(), strings.Join(stateKeyValues[:], ",")))
				}
				break
			}
		}
		if !found {
			deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-multicast:multicast-routing/vrf=%v", state.getPath(), strings.Join(stateKeyValues[:], ",")))
		}
	}
	if !state.IpMulticastRoutingDistributed.IsNull() && data.IpMulticastRoutingDistributed.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-multicast:multicast-routing/distributed", state.getPath()))
	}
	if !state.MulticastRoutingSwitch.IsNull() && data.MulticastRoutingSwitch.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-multicast:mcr-conf/multicast-routing", state.getPath()))
	}
	if !state.IpMulticastRouting.IsNull() && data.IpMulticastRouting.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/Cisco-IOS-XE-multicast:multicast-routing", state.getPath()))
	}
	if !state.LoginOnSuccessLog.IsNull() && data.LoginOnSuccessLog.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/login/on-success/log", state.getPath()))
	}
	if !state.LoginOnSuccess.IsNull() && data.LoginOnSuccess.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/login/on-success", state.getPath()))
	}
	if !state.LoginOnFailureLog.IsNull() && data.LoginOnFailureLog.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/login/on-failure/log", state.getPath()))
	}
	if !state.LoginOnFailure.IsNull() && data.LoginOnFailure.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/login/on-failure", state.getPath()))
	}
	if !state.LoginDelay.IsNull() && data.LoginDelay.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/login/delay", state.getPath()))
	}
	if !state.IpDomainName.IsNull() && data.IpDomainName.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/domain/name", state.getPath()))
	}
	if !state.IpDomainLookup.IsNull() && data.IpDomainLookup.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/domain/lookup", state.getPath()))
	}
	if !state.IpSourceRoute.IsNull() && data.IpSourceRoute.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/source-route", state.getPath()))
	}
	if !state.Mtu.IsNull() && data.Mtu.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/system/Cisco-IOS-XE-switch:mtu/size", state.getPath()))
	}
	if !state.Ipv6UnicastRouting.IsNull() && data.Ipv6UnicastRouting.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ipv6/unicast-routing", state.getPath()))
	}
	if !state.IpRouting.IsNull() && data.IpRouting.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/routing-conf/routing", state.getPath()))
	}
	if !state.IpBgpCommunityNewFormat.IsNull() && data.IpBgpCommunityNewFormat.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/bgp-community/new-format", state.getPath()))
	}
	if !state.Hostname.IsNull() && data.Hostname.IsNull() {
		deletedItems = append(deletedItems, fmt.Sprintf("%v/hostname", state.getPath()))
	}

	return deletedItems
}

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

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

func (data *System) getEmptyLeafsDelete(ctx context.Context) []string {
	emptyLeafsDelete := make([]string, 0)

	for i := range data.TrackObjects {
		keyValues := [...]string{data.TrackObjects[i].Number.ValueString()}
		if !data.TrackObjects[i].IpSlaReachability.IsNull() && !data.TrackObjects[i].IpSlaReachability.ValueBool() {
			emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/track/Cisco-IOS-XE-track:tracked-object-v2=%v/ip/sla/reachability", data.getPath(), strings.Join(keyValues[:], ",")))
		}
	}
	if !data.SubscriberTemplating.IsNull() && !data.SubscriberTemplating.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/subscriber/templating", data.getPath()))
	}

	if !data.IpScpServerEnable.IsNull() && !data.IpScpServerEnable.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/ip/scp/server/enable", data.getPath()))
	}
	if !data.TransceiverTypeAllMonitoring.IsNull() && !data.TransceiverTypeAllMonitoring.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/transceivers/type/all/monitoring-enable/monitoring", data.getPath()))
	}
	if !data.Redundancy.IsNull() && !data.Redundancy.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/redundancy", data.getPath()))
	}
	if !data.ArchiveLogConfigLoggingEnable.IsNull() && !data.ArchiveLogConfigLoggingEnable.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/archive/log/config/logging/enable", data.getPath()))
	}
	if !data.ArchiveWriteMemory.IsNull() && !data.ArchiveWriteMemory.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/archive/write-memory", data.getPath()))
	}
	if !data.AccessSessionMacMoveDeny.IsNull() && !data.AccessSessionMacMoveDeny.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:access-session/mac-move/deny", data.getPath()))
	}
	if !data.EpmLogging.IsNull() && !data.EpmLogging.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/epm/logging", data.getPath()))
	}
	if !data.CispEnable.IsNull() && !data.CispEnable.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/cisp/enable", data.getPath()))
	}

	if !data.IpHttpAuthenticationLocal.IsNull() && !data.IpHttpAuthenticationLocal.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/authentication/local", data.getPath()))
	}

	if !data.IpHttpAuthenticationAaa.IsNull() && !data.IpHttpAuthenticationAaa.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/authentication/aaa", data.getPath()))
	}

	for i := range data.MulticastRoutingVrfs {
		keyValues := [...]string{data.MulticastRoutingVrfs[i].Vrf.ValueString()}
		if !data.MulticastRoutingVrfs[i].Distributed.IsNull() && !data.MulticastRoutingVrfs[i].Distributed.ValueBool() {
			emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/ip/Cisco-IOS-XE-multicast:multicast-routing/vrf=%v/distributed", data.getPath(), strings.Join(keyValues[:], ",")))
		}
	}
	if !data.IpMulticastRoutingDistributed.IsNull() && !data.IpMulticastRoutingDistributed.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/ip/Cisco-IOS-XE-multicast:multicast-routing/distributed", data.getPath()))
	}
	if !data.MulticastRoutingSwitch.IsNull() && !data.MulticastRoutingSwitch.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/ip/Cisco-IOS-XE-multicast:mcr-conf/multicast-routing", data.getPath()))
	}
	if !data.IpMulticastRouting.IsNull() && !data.IpMulticastRouting.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/ip/Cisco-IOS-XE-multicast:multicast-routing", data.getPath()))
	}
	if !data.LoginOnSuccessLog.IsNull() && !data.LoginOnSuccessLog.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/login/on-success/log", data.getPath()))
	}
	if !data.LoginOnSuccess.IsNull() && !data.LoginOnSuccess.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/login/on-success", data.getPath()))
	}
	if !data.LoginOnFailureLog.IsNull() && !data.LoginOnFailureLog.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/login/on-failure/log", data.getPath()))
	}
	if !data.LoginOnFailure.IsNull() && !data.LoginOnFailure.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/login/on-failure", data.getPath()))
	}
	if !data.Ipv6UnicastRouting.IsNull() && !data.Ipv6UnicastRouting.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/ipv6/unicast-routing", data.getPath()))
	}
	if !data.IpBgpCommunityNewFormat.IsNull() && !data.IpBgpCommunityNewFormat.ValueBool() {
		emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/ip/bgp-community/new-format", data.getPath()))
	}

	return emptyLeafsDelete
}

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

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

func (data *System) getDeletePaths(ctx context.Context) []string {
	var deletePaths []string
	if !data.StandbyRedirectsEnableDisable.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/standby/redirects-config/redirect-enable-disable/redirects", data.getPath()))
	}
	if !data.StandbyRedirects.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/standby/redirects-config/redirects", data.getPath()))
	}
	if !data.EthernetCfmAlarmConfigReset.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ethernet/Cisco-IOS-XE-ethernet:cfm/alarm-config/reset", data.getPath()))
	}
	if !data.EthernetCfmAlarmConfigDelay.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ethernet/Cisco-IOS-XE-ethernet:cfm/alarm-config/delay", data.getPath()))
	}
	if !data.IpDomainListVrf.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/domain/list/vrf/vrf-name", data.getPath()))
	}
	if !data.IpDomainListVrfDomain.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/domain/list/vrf/domain-name", data.getPath()))
	}
	if !data.IpDomainListNames.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/domain/list/domain-name", data.getPath()))
	}
	if !data.SecurityPasswordsMinLength.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-aaa:security/passwords/min-length", data.getPath()))
	}
	if !data.IpMulticastRouteLimit.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/multicast/Cisco-IOS-XE-multicast:route-limit-container/routelimit", data.getPath()))
	}
	if !data.IpNbarClassificationDnsClassifyByDomain.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-nbar:nbar/classification/dns/classify-by-domain-with-default", data.getPath()))
	}
	for i := range data.TrackObjects {
		keyValues := [...]string{data.TrackObjects[i].Number.ValueString()}

		deletePaths = append(deletePaths, fmt.Sprintf("%v/track/Cisco-IOS-XE-track:tracked-object-v2=%v", data.getPath(), strings.Join(keyValues[:], ",")))
	}
	if !data.Version.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/version", data.getPath()))
	}
	if !data.MultilinkPppBundleName.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/multilink/Cisco-IOS-XE-ppp:bundle-name", data.getPath()))
	}
	if !data.TftpSourceInterfaceLoopback.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/tftp/source-interface/Loopback", data.getPath()))
	}
	if !data.TftpSourceInterfaceGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/tftp/source-interface/GigabitEthernet", data.getPath()))
	}
	if !data.IpFtpPassive.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/ftp/passive-enable", data.getPath()))
	}
	if !data.CallHomeCiscoTac1DestinationTransportMethod.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/call-home/Cisco-IOS-XE-call-home:tac-profile/profile/CiscoTAC-1/destination/transport-method", data.getPath()))
	}
	if !data.CallHomeCiscoTac1ProfileActive.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/call-home/Cisco-IOS-XE-call-home:tac-profile/profile/CiscoTAC-1/active", data.getPath()))
	}
	if !data.CallHomeContactEmail.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/call-home/Cisco-IOS-XE-call-home:contact-email-addr", data.getPath()))
	}
	if !data.SubscriberTemplating.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/subscriber/templating", data.getPath()))
	}
	if !data.DiagnosticEventLogSize.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-diagnostics:diagnostic/event-log/size", data.getPath()))
	}
	for i := range data.IpHostsVrf {
		keyValues := [...]string{data.IpHostsVrf[i].Vrf.ValueString()}

		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/host/vrf=%v", data.getPath(), strings.Join(keyValues[:], ",")))
	}
	for i := range data.IpHosts {
		keyValues := [...]string{data.IpHosts[i].Name.ValueString()}

		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/host/host-list=%v", data.getPath(), strings.Join(keyValues[:], ",")))
	}
	if !data.EnableSecretLevel.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/enable/secret/level", data.getPath()))
	}
	if !data.EnableSecretType.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/enable/secret/type", data.getPath()))
	}
	if !data.EnableSecret.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/enable/secret", data.getPath()))
	}
	for i := range data.BootSystemBootfiles {
		keyValues := [...]string{data.BootSystemBootfiles[i].Path.ValueString()}

		deletePaths = append(deletePaths, fmt.Sprintf("%v/boot/system/bootfile/filename-list-ordered-by-user=%v", data.getPath(), strings.Join(keyValues[:], ",")))
	}
	for i := range data.BootSystemFlashFiles {
		keyValues := [...]string{data.BootSystemFlashFiles[i].Path.ValueString()}

		deletePaths = append(deletePaths, fmt.Sprintf("%v/boot/system/flash/flash-list-ordered-by-user=%v", data.getPath(), strings.Join(keyValues[:], ",")))
	}
	if !data.IpRadiusSourceInterfaceVrf.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:radius/source-interface/vrf", data.getPath()))
	}
	if !data.IpRadiusSourceInterfaceHundredGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:radius/source-interface/HundredGigE", data.getPath()))
	}
	if !data.IpRadiusSourceInterfaceFortyGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:radius/source-interface/FortyGigabitEthernet", data.getPath()))
	}
	if !data.IpRadiusSourceInterfaceTwentyFiveGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:radius/source-interface/TwentyFiveGigE", data.getPath()))
	}
	if !data.IpRadiusSourceInterfaceTenGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:radius/source-interface/TenGigabitEthernet", data.getPath()))
	}
	if !data.IpRadiusSourceInterfaceFiveGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:radius/source-interface/FiveGigabitEthernet", data.getPath()))
	}
	if !data.IpRadiusSourceInterfaceTwoGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:radius/source-interface/TwoGigabitEthernet", data.getPath()))
	}
	if !data.IpRadiusSourceInterfaceGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:radius/source-interface/GigabitEthernet", data.getPath()))
	}
	if !data.IpRadiusSourceInterfaceVlan.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:radius/source-interface/Vlan", data.getPath()))
	}
	if !data.IpRadiusSourceInterfaceLoopback.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:radius/source-interface/Loopback", data.getPath()))
	}
	if !data.IpTacacsSourceInterfaceVrf.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:tacacs/source-interface/vrf", data.getPath()))
	}
	if !data.IpTacacsSourceInterfaceHundredGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:tacacs/source-interface/HundredGigE", data.getPath()))
	}
	if !data.IpTacacsSourceInterfaceFortyGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:tacacs/source-interface/FortyGigabitEthernet", data.getPath()))
	}
	if !data.IpTacacsSourceInterfaceTwentyFiveGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:tacacs/source-interface/TwentyFiveGigE", data.getPath()))
	}
	if !data.IpTacacsSourceInterfaceTenGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:tacacs/source-interface/TenGigabitEthernet", data.getPath()))
	}
	if !data.IpTacacsSourceInterfaceFiveGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:tacacs/source-interface/FiveGigabitEthernet", data.getPath()))
	}
	if !data.IpTacacsSourceInterfaceTwoGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:tacacs/source-interface/TwoGigabitEthernet", data.getPath()))
	}
	if !data.IpTacacsSourceInterfaceGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:tacacs/source-interface/GigabitEthernet", data.getPath()))
	}
	if !data.IpTacacsSourceInterfaceVlan.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:tacacs/source-interface/Vlan", data.getPath()))
	}
	if !data.IpTacacsSourceInterfaceLoopback.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-aaa:tacacs/source-interface/Loopback", data.getPath()))
	}
	for i := range data.PnpProfiles {
		keyValues := [...]string{data.PnpProfiles[i].Name.ValueString()}

		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-pnp:pnp/profile=%v", data.getPath(), strings.Join(keyValues[:], ",")))
	}
	if !data.ControlPlaneServicePolicyInput.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/control-plane/Cisco-IOS-XE-policy:service-policy/input", data.getPath()))
	}
	if !data.IpSshSourceInterfaceHundredGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/ssh/source-interface-config/HundredGigE", data.getPath()))
	}
	if !data.IpSshSourceInterfaceFortyGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/ssh/source-interface-config/FortyGigabitEthernet", data.getPath()))
	}
	if !data.IpSshSourceInterfaceTwentyFiveGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/ssh/source-interface-config/TwentyFiveGigE", data.getPath()))
	}
	if !data.IpSshSourceInterfaceTenGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/ssh/source-interface-config/TenGigabitEthernet", data.getPath()))
	}
	if !data.IpSshSourceInterfaceFiveGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/ssh/source-interface-config/FiveGigabitEthernet", data.getPath()))
	}
	if !data.IpSshSourceInterfaceTwoGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/ssh/source-interface-config/TwoGigabitEthernet", data.getPath()))
	}
	if !data.IpSshSourceInterfaceGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/ssh/source-interface-config/GigabitEthernet", data.getPath()))
	}
	if !data.IpSshSourceInterfaceVlan.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/ssh/source-interface-config/Vlan", data.getPath()))
	}
	if !data.IpSshSourceInterfaceLoopback.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/ssh/source-interface-config/Loopback", data.getPath()))
	}
	if !data.IpSshAuthenticationRetries.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/ssh/authentication-retries", data.getPath()))
	}
	if !data.IpSshTimeOut.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/ssh/time-out", data.getPath()))
	}
	if !data.IpSshVersionLegacy.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/ssh/version", data.getPath()))
	}
	if !data.IpSshVersion.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/ssh/ssh-version", data.getPath()))
	}
	if !data.IpScpServerEnable.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/scp/server/enable", data.getPath()))
	}
	if !data.IpForwardProtocolNd.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/forward-protocol-v2/nd", data.getPath()))
	}
	if !data.TransceiverTypeAllMonitoring.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/transceivers/type/all/monitoring-enable/monitoring", data.getPath()))
	}
	if !data.RedundancyMode.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/redundancy/mode", data.getPath()))
	}
	if !data.Redundancy.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/redundancy", data.getPath()))
	}
	if !data.ArchiveLogConfigLoggingSize.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/archive/log/config/logging/size", data.getPath()))
	}
	if !data.ArchiveLogConfigLoggingEnable.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/archive/log/config/logging/enable", data.getPath()))
	}
	if !data.ArchiveTimePeriod.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/archive/time-period", data.getPath()))
	}
	if !data.ArchiveWriteMemory.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/archive/write-memory", data.getPath()))
	}
	if !data.ArchiveMaximum.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/archive/maximum", data.getPath()))
	}
	if !data.ArchivePath.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/archive/path", data.getPath()))
	}
	if !data.MemoryFreeLowWatermarkProcessor.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/memory/free/low-watermark/processor", data.getPath()))
	}
	if !data.DiagnosticBootupLevel.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-diagnostics:diagnostic/bootup/level", data.getPath()))
	}
	if !data.AccessSessionMacMoveDeny.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-sanet:access-session/mac-move/deny", data.getPath()))
	}
	if !data.EpmLogging.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/epm/logging", data.getPath()))
	}
	if !data.CispEnable.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/cisp/enable", data.getPath()))
	}
	if !data.IpDomainLookupSourceInterfaceHundredGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/domain/lookup-settings/lookup/source-interface/HundredGigE", data.getPath()))
	}
	if !data.IpDomainLookupSourceInterfaceFortyGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/domain/lookup-settings/lookup/source-interface/FortyGigabitEthernet", data.getPath()))
	}
	if !data.IpDomainLookupSourceInterfaceTwentyFiveGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/domain/lookup-settings/lookup/source-interface/TwentyFiveGigE", data.getPath()))
	}
	if !data.IpDomainLookupSourceInterfaceTenGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/domain/lookup-settings/lookup/source-interface/TenGigabitEthernet", data.getPath()))
	}
	if !data.IpDomainLookupSourceInterfaceFiveGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/domain/lookup-settings/lookup/source-interface/FiveGigabitEthernet", data.getPath()))
	}
	if !data.IpDomainLookupSourceInterfaceTwoGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/domain/lookup-settings/lookup/source-interface/TwoGigabitEthernet", data.getPath()))
	}
	if !data.IpDomainLookupSourceInterfaceGigabitEthernet.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/domain/lookup-settings/lookup/source-interface/GigabitEthernet", data.getPath()))
	}
	if !data.IpDomainLookupSourceInterfaceVlan.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/domain/lookup-settings/lookup/source-interface/Vlan", data.getPath()))
	}
	if !data.IpDomainLookupSourceInterfaceLoopback.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/domain/lookup-settings/lookup/source-interface/Loopback", data.getPath()))
	}
	for i := range data.IpNameServersVrf {
		keyValues := [...]string{data.IpNameServersVrf[i].Vrf.ValueString()}

		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/name-server/vrf=%v", data.getPath(), strings.Join(keyValues[:], ",")))
	}
	if !data.IpNameServers.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/name-server/no-vrf-ordered", data.getPath()))
	}
	if !data.IpHttpActiveSessionModules.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/active-session-modules", data.getPath()))
	}
	if !data.IpHttpMaxConnections.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/max-connections", data.getPath()))
	}
	if !data.IpHttpSecureActiveSessionModules.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/secure-active-session-modules", data.getPath()))
	}
	if !data.IpHttpClientSourceInterface.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/client/source-interface", data.getPath()))
	}
	if !data.IpHttpClientSecureTrustpoint.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/client/secure-trustpoint", data.getPath()))
	}
	if !data.IpHttpTlsVersion.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/tls-version", data.getPath()))
	}
	if !data.IpHttpSecureTrustpoint.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/secure-trustpoint", data.getPath()))
	}
	if !data.IpHttpSecureServer.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/secure-server", data.getPath()))
	}
	if !data.IpHttpServer.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/server", data.getPath()))
	}
	if !data.IpHttpAuthenticationLocal.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/authentication/local", data.getPath()))
	}
	for i := range data.IpHttpAuthenticationAaaCommandAuthorization {
		keyValues := [...]string{strconv.FormatInt(data.IpHttpAuthenticationAaaCommandAuthorization[i].Level.ValueInt64(), 10)}

		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/authentication/aaa/command-authorization=%v", data.getPath(), strings.Join(keyValues[:], ",")))
	}
	if !data.IpHttpAuthenticationAaaLoginAuthentication.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/authentication/aaa/login-authentication", data.getPath()))
	}
	if !data.IpHttpAuthenticationAaaExecAuthorization.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/authentication/aaa/exec-authorization", data.getPath()))
	}
	if !data.IpHttpAuthenticationAaa.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/authentication/aaa", data.getPath()))
	}
	if !data.IpHttpAccessClass.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-http:http/access-class", data.getPath()))
	}
	for i := range data.MulticastRoutingVrfs {
		keyValues := [...]string{data.MulticastRoutingVrfs[i].Vrf.ValueString()}

		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-multicast:multicast-routing/vrf=%v", data.getPath(), strings.Join(keyValues[:], ",")))
	}
	if !data.IpMulticastRoutingDistributed.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-multicast:multicast-routing/distributed", data.getPath()))
	}
	if !data.MulticastRoutingSwitch.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-multicast:mcr-conf/multicast-routing", data.getPath()))
	}
	if !data.IpMulticastRouting.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/Cisco-IOS-XE-multicast:multicast-routing", data.getPath()))
	}
	if !data.LoginOnSuccessLog.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/login/on-success/log", data.getPath()))
	}
	if !data.LoginOnSuccess.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/login/on-success", data.getPath()))
	}
	if !data.LoginOnFailureLog.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/login/on-failure/log", data.getPath()))
	}
	if !data.LoginOnFailure.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/login/on-failure", data.getPath()))
	}
	if !data.LoginDelay.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/login/delay", data.getPath()))
	}
	if !data.IpDomainName.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/domain/name", data.getPath()))
	}
	if !data.IpDomainLookup.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/domain/lookup", data.getPath()))
	}
	if !data.IpSourceRoute.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/source-route", data.getPath()))
	}
	if !data.Mtu.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/system/Cisco-IOS-XE-switch:mtu/size", data.getPath()))
	}
	if !data.Ipv6UnicastRouting.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ipv6/unicast-routing", data.getPath()))
	}
	if !data.IpRouting.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/routing-conf/routing", data.getPath()))
	}
	if !data.IpBgpCommunityNewFormat.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/bgp-community/new-format", data.getPath()))
	}
	if !data.Hostname.IsNull() {
		deletePaths = append(deletePaths, fmt.Sprintf("%v/hostname", data.getPath()))
	}

	return deletePaths
}

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