{"type":"api","title":"Update Network Appliance Vpn Bgp","meta":{"id":"/apps/pubhub/media/Meraki-Dashboard-API-v1-Documentation/4723762d29b3380de018ae8c0d8a59499a6523e0/5c63a5d4-9452-397a-85eb-8b6fec45147e","info":{"title":"Meraki Dashboard API","description":"A RESTful API to programmatically manage and monitor Cisco Meraki networks at scale.\n\n> Date: 03 July, 2024\n>\n> [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.48.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":"accessControlLists"},{"name":"accessPolicies"},{"name":"acls"},{"name":"actionBatches"},{"name":"adaptivePolicy"},{"name":"addresses"},{"name":"admins"},{"name":"airMarshal"},{"name":"alertTypes"},{"name":"alerts"},{"name":"alternateManagementInterface"},{"name":"analytics"},{"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":"availabilities"},{"name":"bandwidthUsageHistory"},{"name":"bgp"},{"name":"billing"},{"name":"bluetooth"},{"name":"bluetoothClients"},{"name":"bonjourForwarding"},{"name":"boundaries"},{"name":"brandingPolicies"},{"name":"bulk"},{"name":"bulkUpdate"},{"name":"byBoundary"},{"name":"byClient"},{"name":"byDevice"},{"name":"byEnergyUsage"},{"name":"byInterval"},{"name":"byMetric"},{"name":"byModel"},{"name":"byNetwork"},{"name":"byStatus"},{"name":"bySwitch"},{"name":"byType"},{"name":"byUsage"},{"name":"byUtilization"},{"name":"bypassActivationLockAttempts"},{"name":"cableTest"},{"name":"callbacks"},{"name":"categories"},{"name":"cellular"},{"name":"cellularFirewallRules"},{"name":"cellularUsageHistory"},{"name":"certs"},{"name":"changeHistory"},{"name":"channelUtilization"},{"name":"channelUtilizationHistory"},{"name":"claim"},{"name":"claimKey"},{"name":"clientCountHistory"},{"name":"clients"},{"name":"cloudMonitoring"},{"name":"commands"},{"name":"compliance"},{"name":"configTemplates"},{"name":"configurationChanges"},{"name":"configure"},{"name":"configuredDevices"},{"name":"connectionStats"},{"name":"connectivity"},{"name":"connectivityEvents"},{"name":"connectivityMonitoringDestinations"},{"name":"contentFiltering"},{"name":"coterm"},{"name":"current"},{"name":"customAnalytics"},{"name":"customPerformanceClasses"},{"name":"dataRateHistory"},{"name":"delegated"},{"name":"desktopLogs"},{"name":"details"},{"name":"detections"},{"name":"deviceCommandLogs"},{"name":"deviceProfiles"},{"name":"deviceTypeGroupPolicies"},{"name":"dhcp"},{"name":"dhcpServerPolicy"},{"name":"dscpTaggingOptions"},{"name":"dscpToCosMappings"},{"name":"eapOverride"},{"name":"earlyAccess"},{"name":"electronicShelfLabel"},{"name":"entitlements"},{"name":"ethernet"},{"name":"eventTypes"},{"name":"events"},{"name":"exportEvents"},{"name":"failedConnections"},{"name":"features"},{"name":"fields"},{"name":"firewall"},{"name":"firewalledServices"},{"name":"firmware"},{"name":"firmwareUpgrades"},{"name":"floorPlans"},{"name":"groupPolicies"},{"name":"groups"},{"name":"health"},{"name":"healthByTime"},{"name":"historical"},{"name":"history"},{"name":"hotspot20"},{"name":"httpServers"},{"name":"identities"},{"name":"identityPsks"},{"name":"idps"},{"name":"imports"},{"name":"inboundCellularFirewallRules"},{"name":"inboundFirewallRules"},{"name":"interfaces"},{"name":"internetPolicies"},{"name":"intrusion"},{"name":"inventory"},{"name":"ipv6"},{"name":"l3FirewallRules"},{"name":"l7FirewallRules"},{"name":"lan"},{"name":"latencyHistory"},{"name":"latencyStats"},{"name":"latest"},{"name":"licenses"},{"name":"licensing"},{"name":"lines"},{"name":"linkAggregations"},{"name":"linkLayer"},{"name":"live"},{"name":"liveTools"},{"name":"lldpCdp"},{"name":"loginSecurity"},{"name":"logs"},{"name":"lossAndLatencyHistory"},{"name":"malware"},{"name":"managementInterface"},{"name":"manufacturers"},{"name":"me"},{"name":"merakiAuthUsers"},{"name":"meshStatuses"},{"name":"models"},{"name":"monitor"},{"name":"monitoredMediaServers"},{"name":"mqttBrokers"},{"name":"mtu"},{"name":"multicast"},{"name":"netflow"},{"name":"networkAdapters"},{"name":"networkHealth"},{"name":"objectDetectionModels"},{"name":"onboarding"},{"name":"oneToManyNatRules"},{"name":"oneToOneNatRules"},{"name":"openapiSpec"},{"name":"optIns"},{"name":"order"},{"name":"ospf"},{"name":"overview"},{"name":"packetLoss"},{"name":"packets"},{"name":"payloadTemplates"},{"name":"performance"},{"name":"performanceHistory"},{"name":"permissions"},{"name":"pii"},{"name":"piiKeys"},{"name":"ping"},{"name":"pingDevice"},{"name":"policies"},{"name":"policy"},{"name":"policyObjects"},{"name":"portForwardingRules"},{"name":"portSchedules"},{"name":"ports"},{"name":"power"},{"name":"powerModules"},{"name":"prefixes"},{"name":"prepare"},{"name":"priorities"},{"name":"profiles"},{"name":"provisioning"},{"name":"qosRules"},{"name":"qualityAndRetention"},{"name":"qualityRetentionProfiles"},{"name":"radio"},{"name":"readings"},{"name":"recent"},{"name":"relationships"},{"name":"rendezvousPoints"},{"name":"requests"},{"name":"responseCodes"},{"name":"restrictions"},{"name":"rfProfiles"},{"name":"roles"},{"name":"rollbacks"},{"name":"routing"},{"name":"rules"},{"name":"saml"},{"name":"samlRoles"},{"name":"schedules"},{"name":"sdwan"},{"name":"search"},{"name":"security"},{"name":"securityCenters"},{"name":"seen"},{"name":"sense"},{"name":"sentry"},{"name":"servers"},{"name":"settings"},{"name":"signalQualityHistory"},{"name":"sims"},{"name":"singleLan"},{"name":"siteToSiteVpn"},{"name":"smDevicesForKey"},{"name":"smOwnersForKey"},{"name":"snmp"},{"name":"softwares"},{"name":"splash"},{"name":"splashAuthorizationStatus"},{"name":"splashLoginAttempts"},{"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":"summary"},{"name":"swaps"},{"name":"switches"},{"name":"syslogServers"},{"name":"targetGroups"},{"name":"themes"},{"name":"thirdPartyVPNPeers"},{"name":"throughputTest"},{"name":"top"},{"name":"topology"},{"name":"traffic"},{"name":"trafficAnalysis"},{"name":"trafficHistory"},{"name":"trafficShaping"},{"name":"trustedAccessConfigs"},{"name":"trustedServers"},{"name":"upgrades"},{"name":"uplink"},{"name":"uplinkBandwidth"},{"name":"uplinkSelection"},{"name":"uplinks"},{"name":"uplinksLossAndLatency"},{"name":"usage"},{"name":"usageHistories"},{"name":"usageHistory"},{"name":"userAccessDevices"},{"name":"users"},{"name":"v4"},{"name":"video"},{"name":"videoLink"},{"name":"vlanAssignments"},{"name":"vlanProfiles"},{"name":"vlans"},{"name":"vmx"},{"name":"vpn"},{"name":"vpnExclusions"},{"name":"vpnFirewallRules"},{"name":"vppAccounts"},{"name":"wakeOnLan"},{"name":"warmSpare"},{"name":"warnings"},{"name":"webhookTests"},{"name":"webhooks"},{"name":"wirelessProfiles"},{"name":"wlanLists"},{"name":"zones"}],"x-parser-conf":{"overview":{"markdownPath":"docs/overview.md"},"theme":"meraki","serverConfig":true,"meta":{"useProxy":true},"httpBearer":{"bearerToken":"75dd5334bef4d2bc96f26138c163c0a3fa0b5ca6"},"labelConfig":{"endpoint":{"field":"operationId","format":"startCase"}},"groupBy":{"$remoteModule":"config/group_platform.js"},"sortBy":{"$remoteModule":"config/sort_by.js"},"exampleAsDefault":true,"expand":3,"sampleCode":{"python":{"folder":"meraki/sdk/python","name":"Meraki Python Library","highlight":"python"}},"variables":{"organizationId":"1215707","networkId":"N_784752235069315754","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"}}},"spec":{"description":"Update a Hub BGP Configuration","operationId":"updateNetworkApplianceVpnBgp","parameters":[{"name":"networkId","in":"path","description":"Network ID","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Boolean value to enable or disable the BGP configuration. When BGP is enabled, the asNumber (ASN) will be autopopulated with the preconfigured ASN at other Hubs or a default value if there is no ASN configured."},"asNumber":{"type":"integer","description":"An Autonomous System Number (ASN) is required if you are to run BGP and peer with another BGP Speaker outside of the Auto VPN domain. This ASN will be applied to the entire Auto VPN domain. The entire 4-byte ASN range is supported. So, the ASN must be an integer between 1 and 4294967295. When absent, this field is not updated. If no value exists then it defaults to 64512."},"ibgpHoldTimer":{"type":"integer","description":"The iBGP holdtimer in seconds. The iBGP holdtimer must be an integer between 12 and 240. When absent, this field is not updated. If no value exists then it defaults to 240."},"neighbors":{"type":"array","items":{"type":"object","properties":{"ip":{"type":"string","description":"The IPv4 address of the neighbor"},"ipv6":{"type":"object","properties":{"address":{"type":"string","description":"The IPv6 address of the neighbor."}},"required":["address"],"description":"Information regarding IPv6 address of the neighbor, Required if `ip` is not present."},"remoteAsNumber":{"type":"integer","description":"Remote ASN of the neighbor. The remote ASN must be an integer between 1 and 4294967295."},"receiveLimit":{"type":"integer","description":"The receive limit is the maximum number of routes that can be received from any BGP peer. The receive limit must be an integer between 0 and 2147483647. When absent, it defaults to 0."},"allowTransit":{"type":"boolean","description":"When this feature is on, the Meraki device will advertise routes learned from other Autonomous Systems, thereby allowing traffic between Autonomous Systems to transit this AS. When absent, it defaults to false."},"ebgpHoldTimer":{"type":"integer","description":"The eBGP hold timer in seconds for each neighbor. The eBGP hold timer must be an integer between 12 and 240."},"ebgpMultihop":{"type":"integer","description":"Configure this if the neighbor is not adjacent. The eBGP multi-hop must be an integer between 1 and 255."},"sourceInterface":{"type":"string","description":"The output interface for peering with the remote BGP peer. Valid values are: 'wan1', 'wan2' or 'vlan{VLAN ID}'(e.g. 'vlan123')."},"nextHopIp":{"type":"string","description":"The IPv4 address of the remote BGP peer that will establish a TCP session with the local MX."},"ttlSecurity":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Boolean value to enable or disable BGP TTL security."}},"description":"Settings for BGP TTL security to protect BGP peering sessions from forged IP attacks."},"authentication":{"type":"object","properties":{"password":{"type":"string","description":"Password to configure MD5 authentication between BGP peers."}},"description":"Authentication settings between BGP peers."}},"required":["remoteAsNumber","ebgpHoldTimer","ebgpMultihop"]},"description":"List of BGP neighbors. This list replaces the existing set of neighbors. When absent, this field is not updated."}},"example":{"enabled":true,"asNumber":64515,"ibgpHoldTimer":120,"neighbors":[{"ip":"10.10.10.22","ipv6":{"address":"2002::1234:abcd:ffff:c0a8:101"},"remoteAsNumber":64343,"receiveLimit":120,"allowTransit":true,"ebgpHoldTimer":180,"ebgpMultihop":2,"sourceInterface":"wan1","nextHopIp":"1.2.3.4","ttlSecurity":{"enabled":false},"authentication":{"password":"abc123"}}]},"required":["enabled"]}}},"required":true},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether BGP is enabled on the appliance"},"asNumber":{"type":"integer","description":"The number of the Autonomous System to which the appliance belongs"},"ibgpHoldTimer":{"type":"integer","description":"The iBGP hold time in seconds"},"neighbors":{"type":"array","items":{"type":"object","properties":{"ip":{"type":"string","description":"The IPv4 address of the neighbor"},"ipv6":{"type":"object","properties":{"address":{"type":"string","description":"The IPv6 address of the neighbor"}},"description":"Information regarding IPv6 address of the neighbor"},"remoteAsNumber":{"type":"integer","description":"Remote AS number of the neighbor"},"receiveLimit":{"type":"integer","description":"The maximum number of routes that the appliance can receive from the neighbor"},"allowTransit":{"type":"boolean","description":"Whether the appliance will advertise routes learned from other Autonomous Systems"},"ebgpHoldTimer":{"type":"integer","description":"The eBGP hold time in seconds for the neighbor"},"ebgpMultihop":{"type":"integer","description":"The number of hops the appliance must traverse to establish a peering relationship with the neighbor"},"sourceInterface":{"type":"string","description":"The output interface the appliance uses to establish a peering relationship with the neighbor"},"nextHopIp":{"type":"string","description":"The IPv4 address of the neighbor that will establish a TCP session with the appliance"},"ttlSecurity":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether BGP TTL security is enabled"}},"description":"Settings for BGP TTL security to protect BGP peering sessions from forged IP attacks"},"authentication":{"type":"object","properties":{"password":{"type":"string","description":"Password to configure MD5 authentication between BGP peers"}},"description":"Authentication settings between BGP peers"}}},"description":"List of eBGP neighbor configurations"}}},"example":{"enabled":true,"asNumber":64515,"ibgpHoldTimer":120,"neighbors":[{"ip":"10.10.10.22","ipv6":{"address":"2002::1234:abcd:ffff:c0a8:101"},"remoteAsNumber":64343,"receiveLimit":120,"allowTransit":true,"ebgpHoldTimer":180,"ebgpMultihop":2,"sourceInterface":"wan1","nextHopIp":"1.2.3.4","ttlSecurity":{"enabled":false},"authentication":{"password":"abc123"}}]}}}}},"summary":"Update a Hub BGP Configuration","tags":["appliance","configure","vpn","bgp"],"__originalOperationId":"updateNetworkApplianceVpnBgp","security":[{"meraki_api_key":[]},{"bearerAuth":[]}],"method":"put","path":"/networks/{networkId}/appliance/vpn/bgp","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 = '75dd5334bef4d2bc96f26138c163c0a3fa0b5ca6'\n\ndashboard = meraki.DashboardAPI(API_KEY)\n\nnetwork_id = 'L_646829496481105433'\nenabled = True\n\nresponse = dashboard.appliance.updateNetworkApplianceVpnBgp(\n network_id, enabled, \n asNumber=64515, \n ibgpHoldTimer=120, \n neighbors=[{'ip': '10.10.10.22', 'ipv6': {'address': '2002::1234:abcd:ffff:c0a8:101'}, 'remoteAsNumber': 64343, 'receiveLimit': 120, 'allowTransit': True, 'ebgpHoldTimer': 180, 'ebgpMultihop': 2, 'sourceInterface': 'wan1', 'nextHopIp': '1.2.3.4', 'ttlSecurity': {'enabled': False}, 'authentication': {'password': 'abc123'}}]\n)\n\nprint(response)","highlight":"python"}}}}