{"type":"api","title":"Update Network Appliance Vpn Site To Site Vpn","meta":{"id":"/apps/pubhub/media/Meraki-Dashboard-API-v1-Documentation/d215661e9c649929fa473c7bf2fd0bcd71de89e6/28b52581-f438-3451-9ea2-e3d65df40b84","info":{"title":"Meraki Dashboard API","description":"A RESTful API to programmatically manage and monitor Cisco Meraki networks at scale.\n\n\u003e Date: 04 November, 2026\n\u003e\n\u003e [Recent Updates](https://meraki.io/whats-new/)\n\n---\n\n[API Documentation](https://meraki.io/api)\n\n[Community Support](https://meraki.io/community)\n\n[Meraki Homepage](https://www.meraki.com)\n","contact":{"name":"Meraki Developer Community","url":"https://meraki.io/community"},"version":"1.76.0"},"security":[{"meraki_api_key":[]},{"bearerAuth":[]}],"tags":[{"name":"organizations"},{"name":"networks"},{"name":"devices"},{"name":"insight"},{"name":"wireless"},{"name":"camera"},{"name":"appliance"},{"name":"switch"},{"name":"cellularGateway"},{"name":"sm"},{"name":"sensor"},{"name":"administered"},{"name":"campusGateway"},{"name":"wirelessController"},{"name":"spaces"},{"name":"accessControlLists"},{"name":"accessPolicies"},{"name":"account"},{"name":"accounts"},{"name":"acls"},{"name":"actionBatches"},{"name":"adaptivePolicy"},{"name":"adaptivePolicyGroups"},{"name":"addresses"},{"name":"admins"},{"name":"aggregated"},{"name":"airMarshal"},{"name":"alertTypes"},{"name":"alerts"},{"name":"allowlist"},{"name":"alternateManagementInterface"},{"name":"analytics"},{"name":"api"},{"name":"apiRequests"},{"name":"apnsCert"},{"name":"appliances"},{"name":"applicationCategories"},{"name":"applicationUsage"},{"name":"applications"},{"name":"areas"},{"name":"arpInspection"},{"name":"arpTable"},{"name":"artifacts"},{"name":"assets"},{"name":"assignments"},{"name":"authenticationToken"},{"name":"authorities"},{"name":"autoLocate"},{"name":"autoRf"},{"name":"availabilities"},{"name":"bands"},{"name":"bandwidthUsageHistory"},{"name":"bgp"},{"name":"billing"},{"name":"blink"},{"name":"bluetooth"},{"name":"bluetoothClients"},{"name":"bonjourForwarding"},{"name":"boundaries"},{"name":"brandingPolicies"},{"name":"bulk"},{"name":"bulkCreate"},{"name":"bulkDelete"},{"name":"bulkUpdate"},{"name":"byBoundary"},{"name":"byClient"},{"name":"byCluster"},{"name":"byDevice"},{"name":"byEnergyUsage"},{"name":"byGroup"},{"name":"byInterval"},{"name":"byMetric"},{"name":"byModel"},{"name":"byNetwork"},{"name":"byPipeline"},{"name":"bySite"},{"name":"bySsid"},{"name":"byStatus"},{"name":"bySwitch"},{"name":"byType"},{"name":"byUsage"},{"name":"byUtilization"},{"name":"byVlan"},{"name":"bypassActivationLockAttempts"},{"name":"cableTest"},{"name":"callbacks"},{"name":"captures"},{"name":"categories"},{"name":"cellular"},{"name":"cellularFirewallRules"},{"name":"cellularUsageHistory"},{"name":"certificates"},{"name":"certs"},{"name":"changeHistory"},{"name":"channelUtilization"},{"name":"channelUtilizationHistory"},{"name":"channels"},{"name":"claim"},{"name":"claimKey"},{"name":"clientCountHistory"},{"name":"clients"},{"name":"clusters"},{"name":"commands"},{"name":"communicationPlans"},{"name":"compliance"},{"name":"configTemplates"},{"name":"configurationChanges"},{"name":"configure"},{"name":"configuredDevices"},{"name":"connectionStats"},{"name":"connections"},{"name":"connectivity"},{"name":"connectivityEvents"},{"name":"connectivityMonitoringDestinations"},{"name":"connectors"},{"name":"contentFiltering"},{"name":"controller"},{"name":"coterm"},{"name":"cpu"},{"name":"crls"},{"name":"current"},{"name":"customAnalytics"},{"name":"customPerformanceClasses"},{"name":"cycle"},{"name":"dailyConsumerMetrics"},{"name":"data"},{"name":"dataRateHistory"},{"name":"delegated"},{"name":"deltas"},{"name":"deployable"},{"name":"deployed"},{"name":"deployments"},{"name":"desktopLogs"},{"name":"details"},{"name":"detections"},{"name":"deviceCategories"},{"name":"deviceCommandLogs"},{"name":"deviceProfiles"},{"name":"deviceTypeGroupPolicies"},{"name":"dhcp"},{"name":"dhcpServerPolicy"},{"name":"discovery"},{"name":"disenrollments"},{"name":"dns"},{"name":"domains"},{"name":"doorLocks"},{"name":"downloadUrl"},{"name":"dscpTaggingOptions"},{"name":"dscpToCosMappings"},{"name":"eapOverride"},{"name":"earlyAccess"},{"name":"electronicShelfLabel"},{"name":"eligible"},{"name":"enrollments"},{"name":"entitlements"},{"name":"entries"},{"name":"eox"},{"name":"esims"},{"name":"ethernet"},{"name":"eventTypes"},{"name":"events"},{"name":"experience"},{"name":"failedConnections"},{"name":"failover"},{"name":"features"},{"name":"fields"},{"name":"firewall"},{"name":"firewalledServices"},{"name":"firmware"},{"name":"firmwareUpgrades"},{"name":"floorPlans"},{"name":"gateways"},{"name":"geolocations"},{"name":"global"},{"name":"group"},{"name":"groupPolicies"},{"name":"groups"},{"name":"health"},{"name":"healthByTime"},{"name":"historical"},{"name":"history"},{"name":"hotspot20"},{"name":"httpServers"},{"name":"httpsInspection"},{"name":"httpsi"},{"name":"identities"},{"name":"identityPsks"},{"name":"idps"},{"name":"impacted"},{"name":"impactedDevice"},{"name":"inboundCellularFirewallRules"},{"name":"inboundFirewallRules"},{"name":"integrate"},{"name":"integration"},{"name":"integrations"},{"name":"interfaces"},{"name":"internetPolicies"},{"name":"intrusion"},{"name":"inventory"},{"name":"ipsec"},{"name":"ipv6"},{"name":"isolation"},{"name":"jobs"},{"name":"keys"},{"name":"l2"},{"name":"l3"},{"name":"l3FirewallRules"},{"name":"l7FirewallRules"},{"name":"lan"},{"name":"latencyHistory"},{"name":"latencyStats"},{"name":"latest"},{"name":"leds"},{"name":"licenses"},{"name":"licensing"},{"name":"lines"},{"name":"linkAggregations"},{"name":"linkLayer"},{"name":"live"},{"name":"liveTools"},{"name":"lldpCdp"},{"name":"load"},{"name":"local"},{"name":"localOverrides"},{"name":"location"},{"name":"loginSecurity"},{"name":"logs"},{"name":"lookups"},{"name":"lossAndLatencyHistory"},{"name":"macTable"},{"name":"malware"},{"name":"managementInterface"},{"name":"manufacturers"},{"name":"masks"},{"name":"mdns"},{"name":"me"},{"name":"memory"},{"name":"merakiAuthUsers"},{"name":"meshStatuses"},{"name":"migrations"},{"name":"mode"},{"name":"models"},{"name":"monitor"},{"name":"monitoredMediaServers"},{"name":"moves"},{"name":"mqtt"},{"name":"mqttBrokers"},{"name":"mtu"},{"name":"multicast"},{"name":"multicastForwarding"},{"name":"multicastRouting"},{"name":"nat"},{"name":"netflow"},{"name":"networkAdapters"},{"name":"networkHealth"},{"name":"objectDetectionModels"},{"name":"onboarding"},{"name":"oneToManyNatRules"},{"name":"oneToOneNatRules"},{"name":"openRoaming"},{"name":"openapiSpec"},{"name":"optIns"},{"name":"order"},{"name":"orders"},{"name":"ospf"},{"name":"override"},{"name":"overrides"},{"name":"overview"},{"name":"overviews"},{"name":"owe"},{"name":"packetCapture"},{"name":"packetLoss"},{"name":"packets"},{"name":"payloadTemplates"},{"name":"peers"},{"name":"performance"},{"name":"performanceHistory"},{"name":"permissions"},{"name":"pii"},{"name":"piiKeys"},{"name":"ping"},{"name":"pingDevice"},{"name":"pipelines"},{"name":"policies"},{"name":"policy"},{"name":"policyObjects"},{"name":"portForwardingRules"},{"name":"portSchedules"},{"name":"ports"},{"name":"power"},{"name":"powerModules"},{"name":"prefixes"},{"name":"priorities"},{"name":"profiles"},{"name":"provisioning"},{"name":"qosRules"},{"name":"qualityAndRetention"},{"name":"qualityRetentionProfiles"},{"name":"radio"},{"name":"radsec"},{"name":"ratePlans"},{"name":"readings"},{"name":"receivers"},{"name":"recent"},{"name":"records"},{"name":"redundancy"},{"name":"regions"},{"name":"relationships"},{"name":"rendezvousPoints"},{"name":"requests"},{"name":"responseCodes"},{"name":"rest"},{"name":"restrictions"},{"name":"revocationLists"},{"name":"rfProfiles"},{"name":"roles"},{"name":"rollbacks"},{"name":"route"},{"name":"routing"},{"name":"routingTable"},{"name":"rrm"},{"name":"ruleGroups"},{"name":"rules"},{"name":"rulesets"},{"name":"saml"},{"name":"samlRoles"},{"name":"sase"},{"name":"scanning"},{"name":"schedules"},{"name":"sdwan"},{"name":"search"},{"name":"security"},{"name":"securityCenters"},{"name":"seen"},{"name":"sense"},{"name":"sentry"},{"name":"servers"},{"name":"serviceProviders"},{"name":"settings"},{"name":"signalQualityHistory"},{"name":"sims"},{"name":"singleLan"},{"name":"siteToSite"},{"name":"siteToSiteVpn"},{"name":"sites"},{"name":"slas"},{"name":"smDevicesForKey"},{"name":"smOwnersForKey"},{"name":"snmp"},{"name":"softwares"},{"name":"splash"},{"name":"splashAuthorizationStatus"},{"name":"splashLoginAttempts"},{"name":"split"},{"name":"ssids"},{"name":"stacks"},{"name":"staged"},{"name":"stages"},{"name":"staticRoutes"},{"name":"statics"},{"name":"stats"},{"name":"status"},{"name":"statuses"},{"name":"stormControl"},{"name":"stp"},{"name":"subnetPool"},{"name":"subnets"},{"name":"subscription"},{"name":"subscriptions"},{"name":"successfulConnections"},{"name":"summaries"},{"name":"summary"},{"name":"summaryConsumerMetrics"},{"name":"sustainability"},{"name":"swap"},{"name":"swaps"},{"name":"switches"},{"name":"syslog"},{"name":"syslogServers"},{"name":"system"},{"name":"targetGroups"},{"name":"targets"},{"name":"taxonomy"},{"name":"themes"},{"name":"thirdPartyVPNPeers"},{"name":"throughputTest"},{"name":"top"},{"name":"topology"},{"name":"towers"},{"name":"traffic"},{"name":"trafficAnalysis"},{"name":"trafficHistory"},{"name":"trafficShaping"},{"name":"transceivers"},{"name":"trustedAccessConfigs"},{"name":"trustedServers"},{"name":"tunnelable"},{"name":"tunneling"},{"name":"types"},{"name":"umbrella"},{"name":"update"},{"name":"upgrades"},{"name":"uplink"},{"name":"uplinkBandwidth"},{"name":"uplinkSelection"},{"name":"uplinks"},{"name":"uplinksLossAndLatency"},{"name":"usage"},{"name":"usageHistories"},{"name":"usageHistory"},{"name":"userAccessDevices"},{"name":"utilization"},{"name":"v4"},{"name":"video"},{"name":"videoLink"},{"name":"vlanAssignments"},{"name":"vlanProfiles"},{"name":"vlans"},{"name":"vmx"},{"name":"vpn"},{"name":"vpnExclusions"},{"name":"vpnFirewallRules"},{"name":"vppAccounts"},{"name":"vrfs"},{"name":"wakeOnLan"},{"name":"warmSpare"},{"name":"warnings"},{"name":"webhookTests"},{"name":"webhooks"},{"name":"wirelessControllers"},{"name":"wirelessProfiles"},{"name":"wlanLists"},{"name":"xdr"},{"name":"zigbee"},{"name":"zones"}],"x-parser-conf":{"exampleAsDefault":true,"expand":3,"groupBy":{"$remoteModule":"config/group_platform.js"},"httpBearer":{"bearerToken":"75dd5334bef4d2bc96f26138c163c0a3fa0b5ca6"},"labelConfig":{"endpoint":{"field":"operationId","format":"startCase"}},"meta":{"useProxy":true},"overview":{"markdownPath":"docs/overview.md"},"sampleCode":{"python":{"folder":"meraki/sdk/python","highlight":"python","name":"Meraki Python Library"}},"serverConfig":true,"sortBy":{"$remoteModule":"config/sort_by.js"},"theme":"meraki","variables":{"networkId":"N_784752235069315754","organizationId":"1215707","serial":"QBSB-VQ3J-XZ54"}},"openapi":"3.0.1","servers":[{"url":"https://api.meraki.com/{basePath}","variables":{"basePath":{"default":"api/v1"}}}],"securitySchemes":{"meraki_api_key":{"type":"apiKey","name":"X-Cisco-Meraki-API-Key","in":"header"},"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Key"},"oauth2":{"type":"oauth2","description":"This API uses OAuth 2 with the authorization code grant flow. [More info](https://developer.cisco.com/meraki/api-v1/authorization/)","flows":{"authorizationCode":{"authorizationUrl":"https://as.meraki.com/oauth/authorize","tokenUrl":"https://as.meraki.com/oauth/token","scopes":{"camera:config:read":"Cameras (MV)","camera:config:write":"Cameras (MV)","camera:telemetry:read":"Cameras (MV)","camera:telemetry:write":"Cameras (MV)","dashboard:general:config:read":"Entire dashboard, excluding identity and access management","dashboard:general:config:write":"Entire dashboard, excluding identity and access management","dashboard:general:telemetry:read":"Entire dashboard, excluding identity and access management","dashboard:general:telemetry:write":"Entire dashboard, excluding identity and access management","dashboard:iam:config:read":"Dashboard related to identity and access management, including early access features","dashboard:iam:config:write":"Dashboard related to identity and access management, including early access features","dashboard:iam:telemetry:read":"Dashboard related to identity and access management, including early access features","dashboard:iam:telemetry:write":"Dashboard related to identity and access management, including early access features","dashboard:licensing:config:read":"Licensing","dashboard:licensing:config:write":"Licensing","dashboard:licensing:telemetry:read":"Licensing","dashboard:licensing:telemetry:write":"Licensing","iot:gateway:general:config:read":"Sensor Connect (IoT Control)","iot:gateway:general:config:write":"Sensor Connect (IoT Control)","iot:gateway:general:telemetry:read":"Sensor Connect (IoT Control)","iot:gateway:general:telemetry:write":"Sensor Connect (IoT Control)","iot:gateway:onboarding:config:read":"Sensor Connect (IoT Onboarding)","iot:gateway:onboarding:config:write":"Sensor Connect (IoT Onboarding)","policy:config:read":"Provides granular authorization over all global policy resources including policy objects, adaptive policy, and Organization Group Policy","policy:config:write":"Provides granular authorization over all global policy resources including policy objects, adaptive policy, and Organization Group Policy","policy:telemetry:read":"Provides granular authorization over all global policy resources including policy objects, adaptive policy, and Organization Group Policy","policy:telemetry:write":"Provides granular authorization over all global policy resources including policy objects, adaptive policy, and Organization Group Policy","sdwan:config:read":"Secure SD-WAN (MX including MXIGZ)","sdwan:config:write":"Secure SD-WAN (MX including MXIGZ)","sdwan:telemetry:read":"Secure SD-WAN (MX including MXIGZ)","sdwan:telemetry:write":"Secure SD-WAN (MX including MXIGZ)","sensor:config:read":"Sensors (MT)","sensor:config:write":"Sensors (MT)","sensor:telemetry:read":"Sensors (MT)","sensor:telemetry:write":"Sensors (MT)","sm:config:read":"Endpoint Management (SM)","sm:config:write":"Endpoint Management (SM)","sm:telemetry:read":"Endpoint Management (SM)","sm:telemetry:write":"Endpoint Management (SM)","switch:config:read":"Switches (MS)","switch:config:write":"Switches (MS)","switch:telemetry:read":"Switches (MS)","switch:telemetry:write":"Switches (MS)","wireless:config:read":"Wireless (MR)","wireless:config:write":"Wireless (MR)","wireless:telemetry:read":"Wireless (MR)","wireless:telemetry:write":"Wireless (MR)"}}}}}},"spec":{"description":"Update the site-to-site VPN settings of an MX network or configuration template in NAT mode. Unacknowledged warnings return 400 Bad Request with retry guidance in errors and the warnings in confirmations. Review the warnings returned in confirmations, then retry with confirmed: true to accept them. Fatal errors must be corrected before retrying.","operationId":"updateNetworkApplianceVpnSiteToSiteVpn","parameters":[{"name":"networkId","in":"path","description":"Network ID","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"confirmed":{"type":"boolean","description":"Whether to accept the confirmation warnings for these changes. Defaults to true, which accepts confirmation warnings and preserves the existing update behavior. Set to false to opt in to confirmation warnings. Review the warnings returned in confirmations, then retry with confirmed: true to accept them. Fatal errors must be corrected before retrying."},"mode":{"type":"string","enum":["hub","none","spoke"],"description":"The site-to-site VPN mode. Can be one of 'none', 'spoke' or 'hub'"},"natTraversal":{"type":"object","properties":{"mode":{"type":"string","enum":["automatic","manual"],"description":"Whether NAT traversal is automatic or manually configured."},"publicIp":{"type":"string","description":"The public IP address used for manual NAT traversal."},"publicPort":{"type":"integer","description":"The public port used for manual NAT traversal. Must be between 1024 and 65535."}},"required":["mode"],"description":"NAT traversal settings. Omit to leave the existing setting unchanged."},"hubs":{"type":"array","items":{"type":"object","properties":{"hubId":{"type":"string","description":"The network ID of the hub."},"useDefaultRoute":{"type":"boolean","description":"Only valid in 'spoke' mode. Indicates whether default route traffic should be sent to this hub."}},"required":["hubId"]},"description":"The list of VPN hubs, in order of preference. In spoke mode, at least 1 hub is required."},"subnets":{"type":"array","items":{"type":"object","properties":{"localSubnet":{"type":"string","description":"The CIDR notation subnet used within the VPN. Required for standalone networks."},"useVpn":{"type":"boolean","description":"Indicates the presence of the subnet in the VPN"},"nat":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether or not VPN subnet translation is enabled for the subnet"},"remoteSubnet":{"type":"string","description":"The translated subnet to be used in the VPN"},"legacy":{"type":"object","description":"DEPRECATED: Legacy VPN NAT settings. For VLAN entries, when the corresponding NFO is enabled, the related field is returned for every VLAN, including false values."}},"description":"Configuration of NAT for the subnet"}}},"description":"The list of local VPN subnets and their VPN presence. VLAN entries include vlanId and subnetting where applicable. When the corresponding NFO is enabled, NAT settings are returned for every VLAN; non-VLAN entries omit vlanId, subnetting, and nat.legacy."},"sgt":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether or not Peer SGT is enabled for traffic to this VPN peer."}},"description":"Security Group Tag settings for the VPN peer."},"subnet":{"type":"object","properties":{"nat":{"type":"object","properties":{"isAllowed":{"type":"boolean","description":"If enabled, VPN subnet translation can be used to translate any local subnets that are allowed to use the VPN into a new subnet with the same number of addresses."}},"description":"Configuration of NAT for subnets"}},"description":"Configuration of subnet features"},"hostTranslations":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"The name of the translated host."},"local":{"type":"object","properties":{"address":{"type":"string","description":"The local IP address of the translated host."}},"description":"Configuration of the local address of the translated host."},"remote":{"type":"object","properties":{"address":{"type":"string","description":"The remote IP address of the translated host."}},"description":"Configuration of the remote address of the translated host."}}},"description":"The list of VPN host translations. Host translations are supported starting from MX firmware version 26.1.2"}},"example":{"confirmed":false,"mode":"spoke","natTraversal":{"mode":"manual","publicIp":"203.0.113.8","publicPort":4500},"hubs":[{"hubId":"N_4901849","useDefaultRoute":true}],"subnets":[{"localSubnet":"192.168.1.0/24","useVpn":true,"nat":{"enabled":true,"remoteSubnet":"198.51.100.3/32"}}],"sgt":{"enabled":true},"subnet":{"nat":{"isAllowed":true}},"hostTranslations":[{"name":"Host 1","local":{"address":"192.168.1.10"},"remote":{"address":"72.168.2.10"}}]},"required":["mode"]}}},"required":true},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"mode":{"type":"string","description":"The site-to-site VPN mode."},"hubs":{"type":"array","items":{"type":"object","properties":{"hubId":{"type":"string","description":"The network ID of the hub."},"useDefaultRoute":{"type":"boolean","description":"Indicates whether default route traffic should be sent to this hub."},"vrfs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The VRF ID. Use '0' for the default VRF."},"name":{"type":"string","description":"The VRF name."}}},"description":"The VRFs associated with this default-route hub."}}},"description":"The list of VPN hubs, in order of preference."},"subnets":{"type":"array","items":{"type":"object","properties":{"localSubnet":{"type":"string","description":"The CIDR notation subnet used within the VPN"},"useVpn":{"type":"boolean","description":"Indicates the presence of the subnet in the VPN"},"nat":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether or not VPN subnet translation is enabled for the subnet"},"remoteSubnet":{"type":"string","description":"The translated subnet to be used in the VPN"},"legacy":{"type":"object","description":"DEPRECATED: Legacy VPN NAT settings. For VLAN entries, when the corresponding NFO is enabled, the related field is returned for every VLAN, including false values."}},"description":"Configuration of NAT for the subnet"}}},"description":"The list of local VPN subnets and their VPN presence. VLAN entries include vlanId and subnetting where applicable. When the corresponding NFO is enabled, NAT settings are returned for every VLAN; non-VLAN entries omit vlanId, subnetting, and nat.legacy."},"sgt":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether or not Peer SGT is enabled for traffic to this VPN peer."}},"description":"Security Group Tag settings for the VPN peer."},"subnet":{"type":"object","properties":{"nat":{"type":"object","properties":{"isAllowed":{"type":"boolean","description":"If enabled, VPN subnet translation can be used to translate any local subnets that are allowed to use the VPN into a new subnet with the same number of addresses."}},"description":"Configuration of NAT for subnets"}},"description":"Configuration of subnet features"},"hostTranslations":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"The name of the NAT host."},"local":{"type":"object","properties":{"address":{"type":"string","description":"The local IP address of the translated host."}},"description":"Configuration of the local address of the translated host."},"remote":{"type":"object","properties":{"address":{"type":"string","description":"The remote IP address of the translated host."}},"description":"Configuration of the remote address of the translated host."}}},"description":"The list of VPN host translations. Host translations are supported starting from MX firmware version 26.1.2"},"natTraversal":{"type":"object","properties":{"mode":{"type":"string","enum":["automatic","manual"],"description":"Whether NAT traversal is automatic or manually configured."},"publicIp":{"type":"string","description":"The public IPv4 address used for manual NAT traversal."},"publicPort":{"type":"integer","description":"The public port used for manual NAT traversal."}},"description":"NAT traversal settings."}}},"example":{"mode":"spoke","hubs":[{"hubId":"N_4901849","useDefaultRoute":true,"vrfs":[{"id":"0","name":"Default"}]}],"subnets":[{"localSubnet":"192.168.1.0/24","useVpn":true,"nat":{"enabled":true,"remoteSubnet":"198.51.100.3/32"}}],"sgt":{"enabled":true},"subnet":{"nat":{"isAllowed":true}},"hostTranslations":[{"name":"Host 1","local":{"address":"192.168.1.10"},"remote":{"address":"72.168.2.10"}}],"natTraversal":{"mode":"automatic","publicIp":"203.0.113.8","publicPort":4500}}}}}},"security":[{"oauth2":["sdwan:config:write"]}],"summary":"Update the site-to-site VPN settings of an MX network or configuration template in NAT mode","tags":["appliance","configure","vpn","siteToSiteVpn"],"__originalOperationId":"updateNetworkApplianceVpnSiteToSiteVpn","method":"put","path":"/networks/{networkId}/appliance/vpn/siteToSiteVpn","sampleCode":{"Meraki Python Library":{"code":"import meraki\n\n# Defining your API key as a variable in source code is discouraged.\n# This API key is for a read-only docs-specific environment.\n# In your own code, use an environment variable as shown under the Usage section\n# @ https://github.com/meraki/dashboard-api-python/\n\nAPI_KEY = 'your-key-here'\n\ndashboard = meraki.DashboardAPI(API_KEY)\n\nnetwork_id = 'L_646829496481105433'\nmode = 'spoke'\n\nresponse = dashboard.appliance.updateNetworkApplianceVpnSiteToSiteVpn(\n network_id, mode, \n hubs=[{'hubId': 'N_4901849', 'useDefaultRoute': True}], \n subnets=[{'localSubnet': '192.168.1.0/24', 'useVpn': True, 'nat': {'enabled': True, 'remoteSubnet': '192.168.2.0/24'}}], \n subnet={'nat': {'isAllowed': True}}\n)\n\nprint(response)","highlight":"python"}}}}