catalystwan 0.41.2.dev9__py3-none-any.whl → 0.41.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (509) hide show
  1. catalystwan/ENDPOINTS.md +611 -0
  2. catalystwan/__init__.py +2 -3
  3. catalystwan/api/administration.py +2 -13
  4. catalystwan/api/api_container.py +1 -4
  5. catalystwan/api/config_group_api.py +16 -41
  6. catalystwan/api/configuration_groups/parcel.py +30 -100
  7. catalystwan/api/configuration_groups/parcels/cellular_controller.py +33 -0
  8. catalystwan/api/feature_profile_api.py +237 -2016
  9. catalystwan/api/policy_api.py +116 -470
  10. catalystwan/api/template_api.py +44 -113
  11. catalystwan/api/templates/README.md +47 -61
  12. catalystwan/api/templates/cli_template.py +7 -17
  13. catalystwan/api/templates/device_template/device_template.py +32 -127
  14. catalystwan/api/templates/device_template/device_template_payload.json.j2 +19 -0
  15. catalystwan/api/templates/feature_template.py +3 -3
  16. catalystwan/api/templates/models/cisco_aaa_model.py +42 -289
  17. catalystwan/api/templates/models/cisco_banner_model.py +2 -11
  18. catalystwan/api/templates/models/cisco_bfd_model.py +36 -31
  19. catalystwan/api/templates/models/cisco_bgp_model.py +131 -382
  20. catalystwan/api/templates/models/cisco_logging_model.py +43 -80
  21. catalystwan/api/templates/models/cisco_ntp_model.py +15 -34
  22. catalystwan/api/templates/models/cisco_omp_model.py +60 -70
  23. catalystwan/api/templates/models/cisco_ospf.py +74 -143
  24. catalystwan/api/templates/models/cisco_ospfv3.py +95 -217
  25. catalystwan/api/templates/models/cisco_secure_internet_gateway.py +142 -304
  26. catalystwan/api/templates/models/cisco_snmp_model.py +52 -66
  27. catalystwan/api/templates/models/cisco_system.py +129 -238
  28. catalystwan/api/templates/models/cisco_vpn_interface_model.py +275 -632
  29. catalystwan/api/templates/models/cisco_vpn_model.py +270 -433
  30. catalystwan/api/templates/models/cli_template.py +2 -3
  31. catalystwan/api/templates/models/omp_vsmart_model.py +10 -46
  32. catalystwan/api/templates/models/security_vsmart_model.py +8 -11
  33. catalystwan/api/templates/models/supported.py +4 -10
  34. catalystwan/api/templates/models/system_vsmart_model.py +27 -164
  35. catalystwan/apigw_auth.py +2 -6
  36. catalystwan/dataclasses.py +53 -2
  37. catalystwan/endpoints/__init__.py +41 -41
  38. catalystwan/endpoints/certificate_management_device.py +0 -4
  39. catalystwan/endpoints/cluster_management.py +9 -30
  40. catalystwan/endpoints/configuration/feature_profile/sdwan/policy_object.py +12 -35
  41. catalystwan/endpoints/configuration/feature_profile/sdwan/system.py +11 -164
  42. catalystwan/endpoints/configuration/feature_profile/sdwan/transport.py +26 -144
  43. catalystwan/endpoints/configuration/policy/definition/access_control_list.py +11 -6
  44. catalystwan/endpoints/configuration/policy/definition/access_control_list_ipv6.py +11 -6
  45. catalystwan/endpoints/configuration/policy/definition/control.py +11 -6
  46. catalystwan/endpoints/configuration/policy/definition/device_access.py +11 -6
  47. catalystwan/endpoints/configuration/policy/definition/device_access_ipv6.py +11 -6
  48. catalystwan/endpoints/configuration/policy/definition/hub_and_spoke.py +11 -6
  49. catalystwan/endpoints/configuration/policy/definition/mesh.py +11 -2
  50. catalystwan/endpoints/configuration/policy/definition/qos_map.py +11 -2
  51. catalystwan/endpoints/configuration/policy/definition/rewrite.py +11 -6
  52. catalystwan/endpoints/configuration/policy/definition/rule_set.py +11 -2
  53. catalystwan/endpoints/configuration/policy/definition/security_group.py +11 -6
  54. catalystwan/endpoints/configuration/policy/definition/traffic_data.py +11 -6
  55. catalystwan/endpoints/configuration/policy/definition/vpn_membership.py +11 -6
  56. catalystwan/endpoints/configuration/policy/definition/zone_based_firewall.py +11 -6
  57. catalystwan/endpoints/configuration/policy/list/app.py +16 -3
  58. catalystwan/endpoints/configuration/policy/list/app_probe.py +15 -6
  59. catalystwan/endpoints/configuration/policy/list/as_path.py +16 -3
  60. catalystwan/endpoints/configuration/policy/list/class_map.py +16 -3
  61. catalystwan/endpoints/configuration/policy/list/color.py +16 -3
  62. catalystwan/endpoints/configuration/policy/list/community.py +16 -3
  63. catalystwan/endpoints/configuration/policy/list/data_ipv6_prefix.py +15 -6
  64. catalystwan/endpoints/configuration/policy/list/data_prefix.py +16 -3
  65. catalystwan/endpoints/configuration/policy/list/expanded_community.py +15 -6
  66. catalystwan/endpoints/configuration/policy/list/fqdn.py +16 -3
  67. catalystwan/endpoints/configuration/policy/list/geo_location.py +16 -3
  68. catalystwan/endpoints/configuration/policy/list/ips_signature.py +15 -6
  69. catalystwan/endpoints/configuration/policy/list/ipv6_prefix.py +16 -3
  70. catalystwan/endpoints/configuration/policy/list/local_app.py +16 -3
  71. catalystwan/endpoints/configuration/policy/list/local_domain.py +16 -3
  72. catalystwan/endpoints/configuration/policy/list/mirror.py +16 -3
  73. catalystwan/endpoints/configuration/policy/list/policer.py +16 -3
  74. catalystwan/endpoints/configuration/policy/list/port.py +16 -3
  75. catalystwan/endpoints/configuration/policy/list/preferred_color_group.py +15 -6
  76. catalystwan/endpoints/configuration/policy/list/prefix.py +16 -4
  77. catalystwan/endpoints/configuration/policy/list/protocol_name.py +15 -6
  78. catalystwan/endpoints/configuration/policy/list/region.py +10 -2
  79. catalystwan/endpoints/configuration/policy/list/site.py +16 -3
  80. catalystwan/endpoints/configuration/policy/list/sla.py +16 -3
  81. catalystwan/endpoints/configuration/policy/list/tloc.py +16 -3
  82. catalystwan/endpoints/configuration/policy/list/url_allow_list.py +16 -3
  83. catalystwan/endpoints/configuration/policy/list/url_block_list.py +16 -3
  84. catalystwan/endpoints/configuration/policy/list/vpn.py +16 -3
  85. catalystwan/endpoints/configuration/policy/list/zone.py +16 -3
  86. catalystwan/endpoints/configuration/policy/security_template.py +3 -2
  87. catalystwan/endpoints/configuration/software_actions.py +4 -2
  88. catalystwan/endpoints/configuration_dashboard_status.py +2 -2
  89. catalystwan/endpoints/configuration_device_template.py +1 -15
  90. catalystwan/endpoints/configuration_feature_profile.py +11 -8
  91. catalystwan/endpoints/configuration_group.py +5 -28
  92. catalystwan/endpoints/configuration_settings.py +1 -90
  93. catalystwan/endpoints/endpoints_container.py +18 -82
  94. catalystwan/endpoints/real_time_monitoring/reboot_history.py +3 -1
  95. catalystwan/endpoints/tenant_migration.py +0 -2
  96. catalystwan/exceptions.py +0 -24
  97. catalystwan/integration_tests/test_find_template_values.py +18 -7
  98. catalystwan/models/common.py +2 -1898
  99. catalystwan/models/configuration/common.py +0 -1
  100. catalystwan/models/configuration/config_migration.py +36 -0
  101. catalystwan/models/configuration/feature_profile/common.py +149 -634
  102. catalystwan/models/configuration/feature_profile/sdwan/management/vpn.py +26 -0
  103. catalystwan/models/configuration/feature_profile/sdwan/policy_object/__init__.py +60 -69
  104. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/app_probe.py +20 -34
  105. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/application_list.py +6 -8
  106. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/color_list.py +5 -7
  107. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/data_prefix.py +4 -13
  108. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/expanded_community_list.py +7 -9
  109. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/fowarding_class.py +5 -7
  110. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv6_data_prefix.py +9 -11
  111. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv6_prefix_list.py +10 -25
  112. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/{policer.py → policier.py} +10 -12
  113. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/prefered_group_color.py +10 -29
  114. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/prefix_list.py +8 -23
  115. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/sla_class.py +31 -12
  116. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/standard_community.py +10 -16
  117. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/tloc_list.py +7 -8
  118. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/application_list.py +6 -8
  119. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/data_prefix.py +5 -7
  120. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/fqdn.py +5 -7
  121. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/geolocation_list.py +5 -7
  122. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ips_signature.py +5 -7
  123. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/local_domain.py +5 -7
  124. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/protocol_list.py +5 -7
  125. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/security_port.py +11 -21
  126. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/url.py +15 -36
  127. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/zone.py +18 -14
  128. catalystwan/models/configuration/feature_profile/sdwan/service/acl.py +409 -0
  129. catalystwan/models/configuration/feature_profile/sdwan/service/appqoe.py +42 -77
  130. catalystwan/models/configuration/feature_profile/sdwan/service/bgp.py +288 -0
  131. catalystwan/models/configuration/feature_profile/sdwan/service/dhcp_server.py +64 -107
  132. catalystwan/models/configuration/feature_profile/sdwan/service/eigrp.py +42 -39
  133. catalystwan/models/configuration/feature_profile/sdwan/service/lan/common.py +88 -7
  134. catalystwan/models/configuration/feature_profile/sdwan/service/lan/ethernet.py +156 -232
  135. catalystwan/models/configuration/feature_profile/sdwan/service/lan/gre.py +108 -38
  136. catalystwan/models/configuration/feature_profile/sdwan/service/lan/ipsec.py +84 -77
  137. catalystwan/models/configuration/feature_profile/sdwan/service/lan/svi.py +56 -62
  138. catalystwan/models/configuration/feature_profile/sdwan/service/lan/vpn.py +121 -112
  139. catalystwan/models/configuration/feature_profile/sdwan/service/multicast.py +57 -56
  140. catalystwan/models/configuration/feature_profile/sdwan/service/object_tracker.py +21 -15
  141. catalystwan/models/configuration/feature_profile/sdwan/{routing → service}/ospf.py +47 -55
  142. catalystwan/models/configuration/feature_profile/sdwan/{routing → service}/ospfv3.py +72 -74
  143. catalystwan/models/configuration/feature_profile/sdwan/service/route_policy.py +110 -358
  144. catalystwan/models/configuration/feature_profile/sdwan/service/service_insertion_attachment.py +25 -17
  145. catalystwan/models/configuration/feature_profile/sdwan/service/switchport.py +58 -50
  146. catalystwan/models/configuration/feature_profile/sdwan/service/tracker.py +21 -12
  147. catalystwan/models/configuration/feature_profile/sdwan/service/wireless_lan.py +31 -27
  148. catalystwan/models/configuration/feature_profile/sdwan/system/aaa.py +10 -58
  149. catalystwan/models/configuration/feature_profile/sdwan/transport/cellular_controller.py +23 -26
  150. catalystwan/models/configuration/profile_type.py +6 -1
  151. catalystwan/models/policy/__init__.py +69 -282
  152. catalystwan/models/policy/centralized.py +29 -26
  153. catalystwan/models/policy/{definition → definitions}/access_control_list.py +17 -47
  154. catalystwan/models/policy/{definition → definitions}/access_control_list_ipv6.py +18 -42
  155. catalystwan/models/policy/{definition → definitions}/control.py +25 -48
  156. catalystwan/models/policy/{definition → definitions}/device_access.py +11 -22
  157. catalystwan/models/policy/{definition → definitions}/device_access_ipv6.py +11 -20
  158. catalystwan/models/policy/{definition → definitions}/hub_and_spoke.py +4 -18
  159. catalystwan/models/policy/{definition → definitions}/mesh.py +1 -13
  160. catalystwan/models/policy/{definition → definitions}/qos_map.py +32 -39
  161. catalystwan/models/policy/{definition → definitions}/rewrite.py +2 -12
  162. catalystwan/models/policy/{definition → definitions}/rule_set.py +48 -66
  163. catalystwan/models/policy/{definition → definitions}/security_group.py +14 -38
  164. catalystwan/models/policy/{definition → definitions}/traffic_data.py +61 -184
  165. catalystwan/models/policy/{definition → definitions}/vpn_membership.py +1 -13
  166. catalystwan/models/policy/{definition → definitions}/zone_based_firewall.py +32 -93
  167. catalystwan/models/policy/lists.py +330 -0
  168. catalystwan/models/policy/lists_entries.py +444 -0
  169. catalystwan/models/policy/localized.py +16 -34
  170. catalystwan/models/policy/policy.py +10 -14
  171. catalystwan/models/policy/policy_definition.py +173 -673
  172. catalystwan/models/policy/policy_list.py +27 -38
  173. catalystwan/models/policy/security.py +46 -145
  174. catalystwan/response.py +2 -6
  175. catalystwan/session.py +1 -1
  176. catalystwan/tests/templates/definitions/{cisco_vpn_basic.json → Basic_Cisco_VPN_Model.json} +2 -2
  177. catalystwan/tests/templates/definitions/complex_aaa.json +277 -0
  178. catalystwan/tests/templates/definitions/{cisco_vpn_complex.json → complex_cisco_vpn.json} +12 -27
  179. catalystwan/tests/templates/definitions/{cisco_aaa.json → iuo.json} +15 -44
  180. catalystwan/tests/templates/definitions/omp_1.json +11 -0
  181. catalystwan/tests/templates/definitions/{omp_vsmart_2.json → omp_2.json} +2 -16
  182. catalystwan/tests/templates/definitions/{omp_vsmart_3.json → omp_3.json} +2 -16
  183. catalystwan/tests/templates/models/__init__.py +13 -46
  184. catalystwan/tests/templates/models/cisco_aaa.py +48 -81
  185. catalystwan/tests/templates/models/cisco_banner.py +2 -2
  186. catalystwan/tests/templates/models/cisco_bfd.py +6 -4
  187. catalystwan/tests/templates/models/cisco_system.py +3 -108
  188. catalystwan/tests/templates/models/cisco_vpn.py +72 -42
  189. catalystwan/tests/templates/models/omp_vsmart.py +8 -28
  190. catalystwan/tests/templates/schemas/cedge_aaa.json +1 -1
  191. catalystwan/tests/templates/schemas/cisco_system.json +0 -242
  192. catalystwan/tests/templates/schemas/cisco_vpn.json +1 -53
  193. catalystwan/tests/templates/schemas/omp-vsmart.json +0 -20
  194. catalystwan/tests/templates/test_chose_model.py +10 -6
  195. catalystwan/tests/templates/test_deserialize_model.py +4 -4
  196. catalystwan/tests/templates/test_find_template_values.py +0 -229
  197. catalystwan/tests/templates/test_serialize_model.py +2 -1
  198. catalystwan/tests/test_cli_template.py +9 -8
  199. catalystwan/tests/test_endpoints.py +11 -42
  200. catalystwan/tests/test_templates.py +19 -16
  201. catalystwan/utils/feature_template/find_template_values.py +9 -22
  202. catalystwan/utils/timezone.py +422 -0
  203. catalystwan/workflows/tenant_migration.py +1 -1
  204. {catalystwan-0.41.2.dev9.dist-info → catalystwan-0.41.3.dist-info}/METADATA +1 -20
  205. catalystwan-0.41.3.dist-info/RECORD +353 -0
  206. catalystwan/api/builders/__init__.py +0 -14
  207. catalystwan/api/builders/feature_profiles/__init__.py +0 -0
  208. catalystwan/api/builders/feature_profiles/application_priority.py +0 -58
  209. catalystwan/api/builders/feature_profiles/builder_factory.py +0 -59
  210. catalystwan/api/builders/feature_profiles/cli.py +0 -76
  211. catalystwan/api/builders/feature_profiles/mixins.py +0 -44
  212. catalystwan/api/builders/feature_profiles/other.py +0 -79
  213. catalystwan/api/builders/feature_profiles/report.py +0 -155
  214. catalystwan/api/builders/feature_profiles/service.py +0 -248
  215. catalystwan/api/builders/feature_profiles/system.py +0 -80
  216. catalystwan/api/builders/feature_profiles/transport.py +0 -256
  217. catalystwan/api/builders/feature_profiles/uc_voice.py +0 -287
  218. catalystwan/api/templates/models/aaa_model.py +0 -387
  219. catalystwan/api/templates/models/vpn_vsmart_interface_model.py +0 -198
  220. catalystwan/api/templates/models/vpn_vsmart_model.py +0 -124
  221. catalystwan/endpoints/configuration/feature_profile/sdwan/application_priority.py +0 -107
  222. catalystwan/endpoints/configuration/feature_profile/sdwan/cli.py +0 -60
  223. catalystwan/endpoints/configuration/feature_profile/sdwan/dns_security.py +0 -83
  224. catalystwan/endpoints/configuration/feature_profile/sdwan/embedded_security.py +0 -88
  225. catalystwan/endpoints/configuration/feature_profile/sdwan/other.py +0 -62
  226. catalystwan/endpoints/configuration/feature_profile/sdwan/service.py +0 -154
  227. catalystwan/endpoints/configuration/feature_profile/sdwan/sig_security.py +0 -88
  228. catalystwan/endpoints/configuration/feature_profile/sdwan/topology.py +0 -93
  229. catalystwan/endpoints/configuration/feature_profile/sdwan/uc_voice.py +0 -77
  230. catalystwan/endpoints/configuration/network_hierarchy.py +0 -47
  231. catalystwan/endpoints/configuration/packages.py +0 -36
  232. catalystwan/endpoints/configuration/policy/abstractions.py +0 -49
  233. catalystwan/endpoints/configuration/policy/definition/aip.py +0 -52
  234. catalystwan/endpoints/configuration/policy/definition/amp.py +0 -52
  235. catalystwan/endpoints/configuration/policy/definition/app_route.py +0 -50
  236. catalystwan/endpoints/configuration/policy/definition/cflowd.py +0 -46
  237. catalystwan/endpoints/configuration/policy/definition/dial_peer.py +0 -57
  238. catalystwan/endpoints/configuration/policy/definition/dns_security.py +0 -50
  239. catalystwan/endpoints/configuration/policy/definition/fxo_port.py +0 -57
  240. catalystwan/endpoints/configuration/policy/definition/fxs_did_port.py +0 -57
  241. catalystwan/endpoints/configuration/policy/definition/fxs_port.py +0 -57
  242. catalystwan/endpoints/configuration/policy/definition/intrusion_prevention.py +0 -52
  243. catalystwan/endpoints/configuration/policy/definition/pri_isdn_port.py +0 -57
  244. catalystwan/endpoints/configuration/policy/definition/route_policy.py +0 -50
  245. catalystwan/endpoints/configuration/policy/definition/srst_phone_profile.py +0 -59
  246. catalystwan/endpoints/configuration/policy/definition/ssl_decryption.py +0 -50
  247. catalystwan/endpoints/configuration/policy/definition/ssl_decryption_utd_profile.py +0 -52
  248. catalystwan/endpoints/configuration/policy/definition/url_filtering.py +0 -50
  249. catalystwan/endpoints/configuration/policy/definition/vpn_qos_map.py +0 -50
  250. catalystwan/endpoints/configuration/policy/list/extended_community.py +0 -52
  251. catalystwan/endpoints/configuration/policy/list/fax_protocol.py +0 -48
  252. catalystwan/endpoints/configuration/policy/list/identity.py +0 -48
  253. catalystwan/endpoints/configuration/policy/list/media_profile.py +0 -52
  254. catalystwan/endpoints/configuration/policy/list/modem_pass_through.py +0 -52
  255. catalystwan/endpoints/configuration/policy/list/scalable_group_tag.py +0 -52
  256. catalystwan/endpoints/configuration/policy/list/supervisory_disconnect.py +0 -52
  257. catalystwan/endpoints/configuration/policy/list/threat_grid_api_key.py +0 -52
  258. catalystwan/endpoints/configuration/policy/list/translation_profile.py +0 -52
  259. catalystwan/endpoints/configuration/policy/list/translation_rules.py +0 -52
  260. catalystwan/endpoints/configuration/policy/list/trunkgroup.py +0 -48
  261. catalystwan/endpoints/configuration/policy/list/umbrella_data.py +0 -52
  262. catalystwan/endpoints/configuration/policy/voice_template.py +0 -39
  263. catalystwan/endpoints/configuration/policy_group.py +0 -30
  264. catalystwan/endpoints/configuration/topology_group.py +0 -51
  265. catalystwan/endpoints/configuration_general_template.py +0 -31
  266. catalystwan/endpoints/configuration_template_master.py +0 -48
  267. catalystwan/integration_tests/base.py +0 -81
  268. catalystwan/integration_tests/feature_profile/sdwan/__init__.py +0 -0
  269. catalystwan/integration_tests/feature_profile/sdwan/policy/__init__.py +0 -0
  270. catalystwan/integration_tests/feature_profile/sdwan/policy/base.py +0 -33
  271. catalystwan/integration_tests/feature_profile/sdwan/policy/test_extended_community.py +0 -33
  272. catalystwan/integration_tests/feature_profile/sdwan/policy/test_security_app_list.py +0 -32
  273. catalystwan/integration_tests/feature_profile/sdwan/test_application_priority.py +0 -433
  274. catalystwan/integration_tests/feature_profile/sdwan/test_cli.py +0 -54
  275. catalystwan/integration_tests/feature_profile/sdwan/test_dns_security.py +0 -106
  276. catalystwan/integration_tests/feature_profile/sdwan/test_other.py +0 -49
  277. catalystwan/integration_tests/feature_profile/sdwan/test_service.py +0 -1078
  278. catalystwan/integration_tests/feature_profile/sdwan/test_sig_security.py +0 -322
  279. catalystwan/integration_tests/feature_profile/sdwan/test_ssl_decryption.py +0 -85
  280. catalystwan/integration_tests/feature_profile/sdwan/test_system.py +0 -368
  281. catalystwan/integration_tests/feature_profile/sdwan/test_tracker.py +0 -127
  282. catalystwan/integration_tests/feature_profile/sdwan/test_transport.py +0 -1698
  283. catalystwan/integration_tests/feature_profile/sdwan/topology/test_topology.py +0 -93
  284. catalystwan/integration_tests/feature_profile/test_parcel.py +0 -54
  285. catalystwan/integration_tests/profile_builder/__init__.py +0 -0
  286. catalystwan/integration_tests/profile_builder/test_pb_service.py +0 -197
  287. catalystwan/integration_tests/profile_builder/test_pb_transport.py +0 -226
  288. catalystwan/integration_tests/profile_builder/test_pb_uc_voice.py +0 -277
  289. catalystwan/integration_tests/test_data/__init__.py +0 -117
  290. catalystwan/integration_tests/test_network_hierarchy.py +0 -82
  291. catalystwan/integration_tests/test_settings.py +0 -30
  292. catalystwan/models/configuration/feature_profile/parcel.py +0 -245
  293. catalystwan/models/configuration/feature_profile/sdwan/acl/__init__.py +0 -13
  294. catalystwan/models/configuration/feature_profile/sdwan/acl/ipv4acl.py +0 -298
  295. catalystwan/models/configuration/feature_profile/sdwan/acl/ipv6acl.py +0 -344
  296. catalystwan/models/configuration/feature_profile/sdwan/application_priority/__init__.py +0 -218
  297. catalystwan/models/configuration/feature_profile/sdwan/application_priority/cloud_probe.py +0 -61
  298. catalystwan/models/configuration/feature_profile/sdwan/application_priority/policy_settings.py +0 -31
  299. catalystwan/models/configuration/feature_profile/sdwan/application_priority/qos_policy.py +0 -102
  300. catalystwan/models/configuration/feature_profile/sdwan/application_priority/traffic_policy.py +0 -1057
  301. catalystwan/models/configuration/feature_profile/sdwan/cli/__init__.py +0 -23
  302. catalystwan/models/configuration/feature_profile/sdwan/cli/config.py +0 -18
  303. catalystwan/models/configuration/feature_profile/sdwan/cli/full_config.py +0 -15
  304. catalystwan/models/configuration/feature_profile/sdwan/dns_security/__init__.py +0 -13
  305. catalystwan/models/configuration/feature_profile/sdwan/dns_security/dns.py +0 -110
  306. catalystwan/models/configuration/feature_profile/sdwan/embedded_security/__init__.py +0 -23
  307. catalystwan/models/configuration/feature_profile/sdwan/embedded_security/ngfirewall.py +0 -493
  308. catalystwan/models/configuration/feature_profile/sdwan/embedded_security/policy.py +0 -171
  309. catalystwan/models/configuration/feature_profile/sdwan/other/__init__.py +0 -25
  310. catalystwan/models/configuration/feature_profile/sdwan/other/cybervision.py +0 -44
  311. catalystwan/models/configuration/feature_profile/sdwan/other/thousandeyes.py +0 -147
  312. catalystwan/models/configuration/feature_profile/sdwan/other/ucse.py +0 -110
  313. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/as_path.py +0 -22
  314. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/extended_community.py +0 -34
  315. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv4_network_object.py +0 -15
  316. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv4_service_object.py +0 -254
  317. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/mirror.py +0 -27
  318. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/network_object_group.py +0 -15
  319. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/object_group.py +0 -15
  320. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/service_object_group.py +0 -21
  321. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/aip.py +0 -64
  322. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/amp.py +0 -79
  323. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/identity.py +0 -30
  324. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/intrusion_prevention.py +0 -58
  325. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/object_group.py +0 -72
  326. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/rule_set.py +0 -137
  327. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/scalable_group_tag.py +0 -26
  328. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ssl_decryption.py +0 -126
  329. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ssl_decryption_profile.py +0 -165
  330. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/url_filtering.py +0 -148
  331. catalystwan/models/configuration/feature_profile/sdwan/routing/__init__.py +0 -26
  332. catalystwan/models/configuration/feature_profile/sdwan/routing/bgp.py +0 -609
  333. catalystwan/models/configuration/feature_profile/sdwan/service/__init__.py +0 -91
  334. catalystwan/models/configuration/feature_profile/sdwan/service/dual_router_ha.py +0 -26
  335. catalystwan/models/configuration/feature_profile/sdwan/service/lan/multilink.py +0 -101
  336. catalystwan/models/configuration/feature_profile/sdwan/service/service_chain.py +0 -38
  337. catalystwan/models/configuration/feature_profile/sdwan/sig_security/__init__.py +0 -19
  338. catalystwan/models/configuration/feature_profile/sdwan/sig_security/sig_security.py +0 -379
  339. catalystwan/models/configuration/feature_profile/sdwan/system/__init__.py +0 -59
  340. catalystwan/models/configuration/feature_profile/sdwan/system/banner.py +0 -30
  341. catalystwan/models/configuration/feature_profile/sdwan/system/basic.py +0 -290
  342. catalystwan/models/configuration/feature_profile/sdwan/system/bfd.py +0 -69
  343. catalystwan/models/configuration/feature_profile/sdwan/system/device_access.py +0 -157
  344. catalystwan/models/configuration/feature_profile/sdwan/system/device_access_ipv6.py +0 -157
  345. catalystwan/models/configuration/feature_profile/sdwan/system/global_parcel.py +0 -163
  346. catalystwan/models/configuration/feature_profile/sdwan/system/logging_parcel.py +0 -162
  347. catalystwan/models/configuration/feature_profile/sdwan/system/mrf.py +0 -75
  348. catalystwan/models/configuration/feature_profile/sdwan/system/ntp.py +0 -103
  349. catalystwan/models/configuration/feature_profile/sdwan/system/omp.py +0 -120
  350. catalystwan/models/configuration/feature_profile/sdwan/system/security.py +0 -179
  351. catalystwan/models/configuration/feature_profile/sdwan/system/snmp.py +0 -173
  352. catalystwan/models/configuration/feature_profile/sdwan/topology/__init__.py +0 -29
  353. catalystwan/models/configuration/feature_profile/sdwan/topology/custom_control.py +0 -425
  354. catalystwan/models/configuration/feature_profile/sdwan/topology/hubspoke.py +0 -60
  355. catalystwan/models/configuration/feature_profile/sdwan/topology/mesh.py +0 -23
  356. catalystwan/models/configuration/feature_profile/sdwan/trackers/__init__.py +0 -36
  357. catalystwan/models/configuration/feature_profile/sdwan/trackers/tracker.py +0 -96
  358. catalystwan/models/configuration/feature_profile/sdwan/trackers/tracker_group.py +0 -63
  359. catalystwan/models/configuration/feature_profile/sdwan/transport/__init__.py +0 -93
  360. catalystwan/models/configuration/feature_profile/sdwan/transport/cellular_profile.py +0 -71
  361. catalystwan/models/configuration/feature_profile/sdwan/transport/gps.py +0 -37
  362. catalystwan/models/configuration/feature_profile/sdwan/transport/management/ethernet.py +0 -121
  363. catalystwan/models/configuration/feature_profile/sdwan/transport/t1e1controller.py +0 -124
  364. catalystwan/models/configuration/feature_profile/sdwan/transport/vpn.py +0 -285
  365. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/cellular.py +0 -173
  366. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/ethernet.py +0 -389
  367. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/gre.py +0 -46
  368. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/ipsec.py +0 -137
  369. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/multilink.py +0 -219
  370. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/protocol_over.py +0 -405
  371. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/t1e1serial.py +0 -195
  372. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/__init__.py +0 -62
  373. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/analog_interface.py +0 -436
  374. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/call_routing.py +0 -179
  375. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/digital_interface.py +0 -380
  376. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/dsp_farm.py +0 -193
  377. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/media_profile.py +0 -17
  378. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/server_group.py +0 -51
  379. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/srst.py +0 -86
  380. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/supervisory_disconnect.py +0 -69
  381. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/translation_profile.py +0 -42
  382. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/translation_rule.py +0 -31
  383. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/trunk_group.py +0 -26
  384. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/voice_global.py +0 -57
  385. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/voice_tenant.py +0 -40
  386. catalystwan/models/configuration/network_hierarchy/__init__.py +0 -24
  387. catalystwan/models/configuration/network_hierarchy/cflowd.py +0 -128
  388. catalystwan/models/configuration/network_hierarchy/node.py +0 -88
  389. catalystwan/models/configuration/network_hierarchy/security_logging.py +0 -91
  390. catalystwan/models/configuration/packages.py +0 -57
  391. catalystwan/models/configuration/policy_group.py +0 -74
  392. catalystwan/models/configuration/topology_group.py +0 -52
  393. catalystwan/models/policy/definition/aip.py +0 -60
  394. catalystwan/models/policy/definition/amp.py +0 -65
  395. catalystwan/models/policy/definition/app_route.py +0 -246
  396. catalystwan/models/policy/definition/cflowd.py +0 -95
  397. catalystwan/models/policy/definition/dial_peer.py +0 -60
  398. catalystwan/models/policy/definition/dns_security.py +0 -130
  399. catalystwan/models/policy/definition/fxo_port.py +0 -63
  400. catalystwan/models/policy/definition/fxs_did_port.py +0 -58
  401. catalystwan/models/policy/definition/fxs_port.py +0 -56
  402. catalystwan/models/policy/definition/intrusion_prevention.py +0 -55
  403. catalystwan/models/policy/definition/pri_isdn_port.py +0 -48
  404. catalystwan/models/policy/definition/route_policy.py +0 -187
  405. catalystwan/models/policy/definition/srst_phone_profile.py +0 -37
  406. catalystwan/models/policy/definition/ssl_decryption.py +0 -209
  407. catalystwan/models/policy/definition/ssl_decryption_utd_profile.py +0 -88
  408. catalystwan/models/policy/definition/url_filtering.py +0 -70
  409. catalystwan/models/policy/definition/vpn_qos_map.py +0 -46
  410. catalystwan/models/policy/list/app.py +0 -44
  411. catalystwan/models/policy/list/app_probe.py +0 -42
  412. catalystwan/models/policy/list/as_path.py +0 -30
  413. catalystwan/models/policy/list/class_map.py +0 -30
  414. catalystwan/models/policy/list/color.py +0 -28
  415. catalystwan/models/policy/list/communities.py +0 -83
  416. catalystwan/models/policy/list/data_ipv6_prefix.py +0 -30
  417. catalystwan/models/policy/list/data_prefix.py +0 -30
  418. catalystwan/models/policy/list/fax_protocol.py +0 -45
  419. catalystwan/models/policy/list/fqdn.py +0 -24
  420. catalystwan/models/policy/list/geo_location.py +0 -33
  421. catalystwan/models/policy/list/identity.py +0 -29
  422. catalystwan/models/policy/list/ips_signature.py +0 -27
  423. catalystwan/models/policy/list/ipv6_prefix.py +0 -33
  424. catalystwan/models/policy/list/local_app.py +0 -45
  425. catalystwan/models/policy/list/local_domain.py +0 -36
  426. catalystwan/models/policy/list/media_profile.py +0 -44
  427. catalystwan/models/policy/list/mirror.py +0 -27
  428. catalystwan/models/policy/list/modem_pass_through.py +0 -27
  429. catalystwan/models/policy/list/policer.py +0 -39
  430. catalystwan/models/policy/list/port.py +0 -33
  431. catalystwan/models/policy/list/preferred_color_group.py +0 -82
  432. catalystwan/models/policy/list/prefix.py +0 -33
  433. catalystwan/models/policy/list/protocol_name.py +0 -26
  434. catalystwan/models/policy/list/region.py +0 -45
  435. catalystwan/models/policy/list/scalable_group_tag.py +0 -30
  436. catalystwan/models/policy/list/site.py +0 -34
  437. catalystwan/models/policy/list/sla.py +0 -77
  438. catalystwan/models/policy/list/supervisory_disconnect.py +0 -62
  439. catalystwan/models/policy/list/threat_grid_api_key.py +0 -32
  440. catalystwan/models/policy/list/tloc.py +0 -32
  441. catalystwan/models/policy/list/translation_profile.py +0 -32
  442. catalystwan/models/policy/list/translation_rules.py +0 -29
  443. catalystwan/models/policy/list/trunkgroup.py +0 -56
  444. catalystwan/models/policy/list/umbrella_data.py +0 -30
  445. catalystwan/models/policy/list/url.py +0 -39
  446. catalystwan/models/policy/list/vpn.py +0 -40
  447. catalystwan/models/policy/list/zone.py +0 -46
  448. catalystwan/models/policy/voice.py +0 -77
  449. catalystwan/models/settings.py +0 -41
  450. catalystwan/models/templates.py +0 -79
  451. catalystwan/tests/builders/test_report.py +0 -60
  452. catalystwan/tests/builders/uc_voice.py +0 -85
  453. catalystwan/tests/models/__init__.py +0 -0
  454. catalystwan/tests/models/configuration/feature_profile/sdwan/policy_object/security/test_url.py +0 -73
  455. catalystwan/tests/models/test_digital_interface.py +0 -56
  456. catalystwan/tests/templates/definitions/aaa_basic.json +0 -96
  457. catalystwan/tests/templates/definitions/aaa_complex.json +0 -464
  458. catalystwan/tests/templates/definitions/cisco_aaa_complex.json +0 -361
  459. catalystwan/tests/templates/definitions/cisco_logging_complex.json +0 -268
  460. catalystwan/tests/templates/definitions/cisco_ntp_complex.json +0 -143
  461. catalystwan/tests/templates/definitions/cisco_omp_complex.json +0 -175
  462. catalystwan/tests/templates/definitions/cisco_ospf_complex.json +0 -302
  463. catalystwan/tests/templates/definitions/cisco_sig.json +0 -405
  464. catalystwan/tests/templates/definitions/cisco_snmp_complex.json +0 -258
  465. catalystwan/tests/templates/definitions/cisco_system_complex.json +0 -502
  466. catalystwan/tests/templates/definitions/cisco_vpn_interface_complex.json +0 -821
  467. catalystwan/tests/templates/definitions/omp_vsmart_1.json +0 -26
  468. catalystwan/tests/templates/definitions/omp_vsmart_complex.json +0 -73
  469. catalystwan/tests/templates/definitions/security_vsmart_complex.json +0 -24
  470. catalystwan/tests/templates/definitions/system_vsmart_complex.json +0 -193
  471. catalystwan/tests/templates/definitions/vpn_vsmart_basic.json +0 -17
  472. catalystwan/tests/templates/definitions/vpn_vsmart_complex.json +0 -179
  473. catalystwan/tests/templates/definitions/vpn_vsmart_interface_basic.json +0 -42
  474. catalystwan/tests/templates/definitions/vpn_vsmart_interface_complex.json +0 -208
  475. catalystwan/tests/templates/models/aaa.py +0 -106
  476. catalystwan/tests/templates/models/cisco_logging.py +0 -65
  477. catalystwan/tests/templates/models/cisco_ntp.py +0 -17
  478. catalystwan/tests/templates/models/cisco_omp.py +0 -37
  479. catalystwan/tests/templates/models/cisco_ospf.py +0 -60
  480. catalystwan/tests/templates/models/cisco_secure_internet_gateway.py +0 -95
  481. catalystwan/tests/templates/models/cisco_snmp.py +0 -40
  482. catalystwan/tests/templates/models/cisco_vpn_interface.py +0 -200
  483. catalystwan/tests/templates/models/security_vsmart.py +0 -11
  484. catalystwan/tests/templates/models/system_vsmart.py +0 -37
  485. catalystwan/tests/templates/models/vpn_vsmart.py +0 -32
  486. catalystwan/tests/templates/models/vpn_vsmart_interface.py +0 -54
  487. catalystwan/tests/templates/schemas/aaa.json +0 -1096
  488. catalystwan/tests/templates/schemas/cisco_logging.json +0 -577
  489. catalystwan/tests/templates/schemas/cisco_ntp.json +0 -265
  490. catalystwan/tests/templates/schemas/cisco_omp.json +0 -479
  491. catalystwan/tests/templates/schemas/cisco_ospf.json +0 -908
  492. catalystwan/tests/templates/schemas/cisco_secure_internet_gateway.json +0 -1520
  493. catalystwan/tests/templates/schemas/cisco_snmp.json +0 -561
  494. catalystwan/tests/templates/schemas/cisco_vpn_interface.json +0 -3348
  495. catalystwan/tests/templates/schemas/security-vsmart.json +0 -58
  496. catalystwan/tests/templates/schemas/system-vsmart.json +0 -2585
  497. catalystwan/tests/templates/schemas/vpn-vsmart-interface.json +0 -859
  498. catalystwan/tests/templates/schemas/vpn-vsmart.json +0 -445
  499. catalystwan/tests/templates/test_find_template_values_2.py +0 -193
  500. catalystwan/tests/test_feature_profile_api.py +0 -282
  501. catalystwan/tests/test_models_common.py +0 -53
  502. catalystwan/utils/model.py +0 -48
  503. catalystwan/utils/persona.py +0 -5
  504. catalystwan/utils/type_check.py +0 -22
  505. catalystwan/workflows/backup_restore_device_templates.py +0 -467
  506. catalystwan-0.41.2.dev9.dist-info/RECORD +0 -641
  507. /catalystwan/tests/templates/definitions/{cisco_banner.json → banner_1.json} +0 -0
  508. {catalystwan-0.41.2.dev9.dist-info → catalystwan-0.41.3.dist-info}/LICENSE +0 -0
  509. {catalystwan-0.41.2.dev9.dist-info → catalystwan-0.41.3.dist-info}/WHEEL +0 -0
@@ -1,609 +0,0 @@
1
- # Copyright 2024 Cisco Systems, Inc. and its affiliates
2
-
3
- from __future__ import annotations
4
-
5
- from ipaddress import IPv4Address, IPv6Address, IPv6Interface
6
- from typing import List, Literal, Optional, Union
7
-
8
- from pydantic import AliasPath, BaseModel, ConfigDict, Field
9
-
10
- from catalystwan.api.configuration_groups.parcel import Default, Global, Variable, _ParcelBase
11
- from catalystwan.models.configuration.feature_profile.common import AddressWithMask, RefIdItem
12
-
13
- FamilyType = Literal["ipv4-unicast", "vpnv4-unicast", "vpnv6-unicast", "ipv6-unicast"]
14
- PolicyTypeOff = Literal["off"]
15
- PolicyTypeRestart = Literal["restart"]
16
- PolicyTypeWarningDisablePeer = Literal["warning-only", "disable-peer"]
17
- # Transport and Management Protocols don't have a "omp" option
18
- RedistributeProtocol = Literal["static", "connected", "ospf", "ospfv3", "nat", "omp"]
19
- RedistributeProtocolIpv6 = Literal["static", "connected", "ospf", "omp"]
20
-
21
-
22
- class MaxPrefixConfigDisabled(BaseModel):
23
- """
24
- Set maximum number of prefixes accepted from BGP peer and threshold exceeded policy actions(restart or warning)
25
- """
26
-
27
- model_config = ConfigDict(
28
- extra="forbid",
29
- populate_by_name=True,
30
- )
31
- policy_type: Global[PolicyTypeOff] = Field(
32
- ...,
33
- serialization_alias="policyType",
34
- validation_alias="policyType",
35
- description="Neighbor received maximum prefix policy is disabled.",
36
- )
37
-
38
-
39
- class MaxPrefixConfigRestart(BaseModel):
40
- """
41
- Set maximum number of prefixes accepted from BGP peer and threshold exceeded policy actions(restart or warning)
42
- """
43
-
44
- model_config = ConfigDict(
45
- extra="forbid",
46
- populate_by_name=True,
47
- )
48
- policy_type: Global[PolicyTypeRestart] = Field(
49
- ...,
50
- serialization_alias="policyType",
51
- validation_alias="policyType",
52
- description="Neighbor maximum prefix policy is enabled,"
53
- "when maximum prefix threshold is exceeded, policy action is restarting device.",
54
- )
55
- prefix_num: Union[Global[int], Variable] = Field(
56
- ...,
57
- serialization_alias="prefixNum",
58
- validation_alias="prefixNum",
59
- description="Set maximum number of prefixes accepted from BGP peer",
60
- )
61
- threshold: Union[Global[int], Variable, Default[int]] = Field(
62
- ...,
63
- description="Set threshold(1 to 100) at which to generate a warning message",
64
- )
65
- restart_interval: Union[Global[int], Variable] = Field(
66
- ...,
67
- serialization_alias="restartInterval",
68
- validation_alias="restartInterval",
69
- description="Set the restart interval(minutes) when to restart BGP connection if threshold is exceeded",
70
- )
71
-
72
-
73
- class MaxPrefixConfigWarningDisablePeer(BaseModel):
74
- """
75
- Set maximum number of prefixes accepted from BGP peer and threshold exceeded policy actions(restart or warning)
76
- """
77
-
78
- model_config = ConfigDict(
79
- extra="forbid",
80
- populate_by_name=True,
81
- )
82
- policy_type: Global[PolicyTypeWarningDisablePeer] = Field(
83
- ...,
84
- serialization_alias="policyType",
85
- validation_alias="policyType",
86
- description="Neighbor maximum prefix policy is enabled,"
87
- "when maximum prefix threshold is exceeded, policy action is warning-only or disable-peer.",
88
- )
89
- prefix_num: Union[Global[int], Variable] = Field(
90
- ...,
91
- serialization_alias="prefixNum",
92
- validation_alias="prefixNum",
93
- description="Set maximum number of prefixes accepted from BGP peer",
94
- )
95
- threshold: Union[Global[int], Variable, Default[int]] = Field(
96
- ...,
97
- description="Set threshold(1 to 100) at which to generate a warning message",
98
- )
99
-
100
-
101
- class AddressFamilyItem(BaseModel):
102
- model_config = ConfigDict(
103
- extra="forbid",
104
- populate_by_name=True,
105
- )
106
- family_type: Global[FamilyType] = Field(
107
- ...,
108
- serialization_alias="familyType",
109
- validation_alias="familyType",
110
- description="Set IPv4 unicast address family or IPv6 unicast address family",
111
- )
112
- max_prefix_config: Optional[
113
- Union[MaxPrefixConfigDisabled, MaxPrefixConfigRestart, MaxPrefixConfigWarningDisablePeer]
114
- ] = Field(
115
- default=None,
116
- serialization_alias="maxPrefixConfig",
117
- validation_alias="maxPrefixConfig",
118
- description="Set maximum number of prefixes accepted from BGP peer"
119
- "and threshold exceeded policy actions (restart or warning)",
120
- )
121
- in_route_policy: Optional[Union[RefIdItem, Default[None]]] = Field(
122
- default=None,
123
- serialization_alias="inRoutePolicy",
124
- validation_alias="inRoutePolicy",
125
- description="In direction route policy name",
126
- )
127
- out_route_policy: Optional[Union[RefIdItem, Default[None]]] = Field(
128
- default=None,
129
- serialization_alias="outRoutePolicy",
130
- validation_alias="outRoutePolicy",
131
- description="out direction route policy name",
132
- )
133
-
134
-
135
- class NeighborItem(BaseModel):
136
- model_config = ConfigDict(
137
- extra="forbid",
138
- populate_by_name=True,
139
- )
140
- address: Union[Variable, Global[IPv4Address]] = Field(..., description="Set neighbor address")
141
- description: Optional[Union[Global[str], Variable, Default[None]]] = Field(
142
- default=None, description="Set description"
143
- )
144
- shutdown: Optional[Union[Variable, Global[bool], Default[Literal[False]]]] = Field(
145
- default=None, description="Enable or disable a BGP neighbor"
146
- )
147
- remote_as: Union[Global[str], Global[int], Variable] = Field(
148
- ...,
149
- serialization_alias="remoteAs",
150
- validation_alias="remoteAs",
151
- description="Set remote autonomous system number <1..4294967295> or <XX.YY>",
152
- )
153
- local_as: Optional[Union[Global[str], Global[int], Variable, Default[None]]] = Field(
154
- default=None,
155
- serialization_alias="localAs",
156
- validation_alias="localAs",
157
- description="Set local autonomous system number <1..4294967295> or <XX.YY>"
158
- "Local-AS cannot have the local BGP protocol AS number or the AS number of the remote peer."
159
- "The local-as is valid only if the peer is a true eBGP peer."
160
- "It does not work for two peers in different sub-ASs in a confederation.",
161
- )
162
- keepalive: Optional[Union[Global[int], Variable, Default[int]]] = Field(
163
- default=None,
164
- description="Set how often to advertise keepalive messages to BGP peer",
165
- )
166
- holdtime: Optional[Union[Global[int], Variable, Default[int]]] = Field(
167
- default=None,
168
- description="Set how long to wait since receiving a keepalive message to consider BGP peer unavailable",
169
- )
170
- if_name: Optional[Union[Global[str], Variable, Default[None]]] = Field(
171
- default=None,
172
- serialization_alias="ifName",
173
- validation_alias="ifName",
174
- description="Source interface name for BGP neighbor",
175
- )
176
- next_hop_self: Optional[Union[Variable, Global[bool], Default[Literal[False]]]] = Field(
177
- default=None,
178
- serialization_alias="nextHopSelf",
179
- validation_alias="nextHopSelf",
180
- description="Set router to be next hop for routes advertised to neighbor",
181
- )
182
- send_community: Optional[Union[Variable, Global[bool], Default[Literal[True]]]] = Field(
183
- default=None,
184
- serialization_alias="sendCommunity",
185
- validation_alias="sendCommunity",
186
- description="Send community attribute",
187
- )
188
- send_ext_community: Optional[Union[Variable, Global[bool], Default[Literal[True]]]] = Field(
189
- default=None,
190
- serialization_alias="sendExtCommunity",
191
- validation_alias="sendExtCommunity",
192
- description="Send extended community attribute",
193
- )
194
- ebgp_multihop: Optional[Union[Global[int], Variable, Default[int]]] = Field(
195
- default=None,
196
- serialization_alias="ebgpMultihop",
197
- validation_alias="ebgpMultihop",
198
- description="Set TTL value for peers that are not directly connected",
199
- )
200
- password: Optional[Union[Global[str], Variable, Default[None]]] = Field(
201
- default=None,
202
- description="Set MD5 password on TCP connection with BGP peer"
203
- "[Note: Catalyst SD-WAN Manager will encrypt this field before saving."
204
- "Cleartext strings will not be returned back to the user in GET responses for sensitive fields.]",
205
- )
206
- send_label: Optional[Union[Global[bool], Default[Literal[False]]]] = Field(
207
- default=None, serialization_alias="sendLabel", validation_alias="sendLabel", description="Send label"
208
- )
209
- send_label_explicit: Optional[Union[Variable, Global[bool], Default[Literal[False]]]] = Field(
210
- default=None,
211
- serialization_alias="sendLabelExplicit",
212
- validation_alias="sendLabelExplicit",
213
- description="Send explicit null label",
214
- )
215
- as_override: Optional[Union[Variable, Global[bool], Default[Literal[False]]]] = Field(
216
- default=None,
217
- serialization_alias="asOverride",
218
- validation_alias="asOverride",
219
- description="Override matching AS-number while sending update",
220
- )
221
- as_number: Optional[Union[Global[int], Variable, Default[None]]] = Field(
222
- default=None,
223
- serialization_alias="asNumber",
224
- validation_alias="asNumber",
225
- description="The number of accept as-path with my AS present in it",
226
- )
227
- address_family: Optional[List[AddressFamilyItem]] = Field(
228
- default=None,
229
- serialization_alias="addressFamily",
230
- validation_alias="addressFamily",
231
- description="Set BGP address family",
232
- max_length=3,
233
- )
234
-
235
-
236
- class Ipv6NeighborItem(BaseModel):
237
- model_config = ConfigDict(
238
- extra="forbid",
239
- populate_by_name=True,
240
- )
241
- address: Union[Global[IPv6Address], Variable] = Field(..., description="Set IPv6 neighbor address")
242
- description: Optional[Union[Global[str], Variable, Default[None]]] = Field(
243
- default=None, description="Set description"
244
- )
245
- shutdown: Optional[Union[Variable, Global[bool], Default[Literal[False]]]] = Field(
246
- default=None, description="Enable or disable a BGP neighbor"
247
- )
248
- remote_as: Union[Global[str], Global[int], Variable] = Field(
249
- ...,
250
- serialization_alias="remoteAs",
251
- validation_alias="remoteAs",
252
- description="Set remote autonomous system number <1..4294967295> or <XX.YY>",
253
- )
254
- local_as: Optional[Union[Global[str], Global[int], Variable, Default[None]]] = Field(
255
- default=None,
256
- serialization_alias="localAs",
257
- validation_alias="localAs",
258
- description="Set local autonomous number <1..4294967295> or <XX.YY>"
259
- "Local-AS cannot have the local BGP protocol AS number or the AS number of the remote peer."
260
- "The local-as is valid only if the peer is a true eBGP peer."
261
- "It does not work for two peers in different sub-ASs in a confederation.",
262
- )
263
- keepalive: Optional[Union[Global[int], Variable, Default[int]]] = Field(
264
- default=None,
265
- description="Interval (seconds) of keepalive messages sent to its BGP peer",
266
- )
267
- holdtime: Optional[Union[Global[int], Variable, Default[int]]] = Field(
268
- default=None,
269
- description="Interval (seconds) not receiving a keepalive message declares a BGP peer down",
270
- )
271
- if_name: Optional[Union[Global[str], Variable, Default[None]]] = Field(
272
- default=None,
273
- serialization_alias="ifName",
274
- validation_alias="ifName",
275
- description="Source interface name for BGP neighbor",
276
- )
277
- next_hop_self: Optional[Union[Variable, Global[bool], Default[Literal[False]]]] = Field(
278
- default=None,
279
- serialization_alias="nextHopSelf",
280
- validation_alias="nextHopSelf",
281
- description="Set router to be next hop for routes advertised to neighbor",
282
- )
283
- send_community: Optional[Union[Variable, Global[bool], Default[Literal[True]]]] = Field(
284
- default=None,
285
- serialization_alias="sendCommunity",
286
- validation_alias="sendCommunity",
287
- description="Send community attribute",
288
- )
289
- send_ext_community: Optional[Union[Variable, Global[bool], Default[Literal[True]]]] = Field(
290
- default=None,
291
- serialization_alias="sendExtCommunity",
292
- validation_alias="sendExtCommunity",
293
- description="Send extended community attribute",
294
- )
295
- ebgp_multihop: Optional[Union[Global[int], Variable, Default[int]]] = Field(
296
- default=None,
297
- serialization_alias="ebgpMultihop",
298
- validation_alias="ebgpMultihop",
299
- description="Set TTL value for peers that are not directly connected",
300
- )
301
- password: Optional[Union[Global[str], Variable, Default[None]]] = Field(
302
- default=None,
303
- description="Set MD5 password on TCP connection with BGP peer"
304
- "[Note: Catalyst SD-WAN Manager will encrypt this field before saving."
305
- "Cleartext strings will not be returned back to the user in GET responses for sensitive fields.]",
306
- )
307
- as_override: Optional[Union[Variable, Global[bool], Default[Literal[False]]]] = Field(
308
- default=None,
309
- serialization_alias="asOverride",
310
- validation_alias="asOverride",
311
- description="Override matching AS-number while sending update",
312
- )
313
- as_number: Optional[Union[Global[int], Variable, Default[None]]] = Field(
314
- default=None,
315
- serialization_alias="asNumber",
316
- validation_alias="asNumber",
317
- description="The number of accept as-path with my AS present in it",
318
- )
319
- address_family: Optional[List[AddressFamilyItem]] = Field(
320
- default=None,
321
- serialization_alias="addressFamily",
322
- validation_alias="addressFamily",
323
- description="Set IPv6 BGP address family",
324
- max_length=2,
325
- )
326
-
327
-
328
- class AggregateAddres(BaseModel):
329
- model_config = ConfigDict(
330
- extra="forbid",
331
- populate_by_name=True,
332
- )
333
- prefix: AddressWithMask = Field(..., description="Configure the IPv4 prefixes to aggregate")
334
- as_set: Optional[Union[Variable, Global[bool], Default[Literal[False]]]] = Field(
335
- default=None, serialization_alias="asSet", validation_alias="asSet", description="Set AS set path information"
336
- )
337
- summary_only: Optional[Union[Variable, Global[bool], Default[Literal[False]]]] = Field(
338
- default=None,
339
- serialization_alias="summaryOnly",
340
- validation_alias="summaryOnly",
341
- description="Variable out more specific routes from updates",
342
- )
343
-
344
-
345
- class NetworkItem(BaseModel):
346
- model_config = ConfigDict(
347
- extra="forbid",
348
- populate_by_name=True,
349
- )
350
- prefix: AddressWithMask = Field(..., description="Configure the prefixes for BGP to announce")
351
-
352
-
353
- OspfMatchRoute = Literal[
354
- "External-type1",
355
- "External-type2",
356
- "Internal",
357
- ]
358
-
359
-
360
- class RedistributeItem(BaseModel):
361
- model_config = ConfigDict(
362
- extra="forbid",
363
- populate_by_name=True,
364
- )
365
- protocol: Union[Global[RedistributeProtocol], Variable] = Field(
366
- ...,
367
- description="Set the protocol to redistribute routes from. "
368
- "Transport and Management Protocols don't have a 'omp' option",
369
- )
370
- route_policy: Optional[Union[Default[None], RefIdItem]] = Field(
371
- default=None,
372
- serialization_alias="routePolicy",
373
- validation_alias="routePolicy",
374
- description="Configure policy to apply to prefixes received from BGP neighbor",
375
- )
376
- metric: Optional[Union[Variable, Global[int], Default[None]]] = Field(default=None)
377
- ospf_match_route: Optional[Union[Global[List[OspfMatchRoute]], Variable, Default[None]]] = Field(
378
- default=None, validation_alias="ospfMatchRoute", serialization_alias="ospfMatchRoute"
379
- )
380
-
381
-
382
- class AddressFamily(BaseModel):
383
- """
384
- Set IPv4 unicast BGP address family
385
- """
386
-
387
- model_config = ConfigDict(
388
- extra="forbid",
389
- populate_by_name=True,
390
- )
391
- aggregate_address: Optional[List[AggregateAddres]] = Field(
392
- default=None,
393
- serialization_alias="aggregateAddress",
394
- validation_alias="aggregateAddress",
395
- description="Aggregate prefixes in specific range",
396
- )
397
- network: Optional[List[NetworkItem]] = Field(
398
- default=None, description="Configure the networks for BGP to advertise"
399
- )
400
- paths: Optional[Union[Global[int], Variable, Default[None]]] = Field(
401
- default=None,
402
- description="Set maximum number of parallel IBGP paths for multipath load sharing. Maximum value is 32 paths.",
403
- )
404
- originate: Optional[Union[Variable, Global[bool], Default[Literal[False]]]] = Field(
405
- default=None, description="BGP Default Information Variable"
406
- )
407
- name: Optional[Union[Default[None], RefIdItem]] = Field(default=None, description="Table Map Policy name")
408
- filter: Optional[Union[Variable, Global[bool], Default[Literal[False]]]] = Field(
409
- default=None, description="Table map filtered or not"
410
- )
411
- redistribute: Optional[List[RedistributeItem]] = Field(
412
- default=None, description="Redistribute routes into BGP", max_length=7
413
- )
414
-
415
-
416
- class Ipv6AggregateAddres(BaseModel):
417
- model_config = ConfigDict(
418
- extra="forbid",
419
- populate_by_name=True,
420
- )
421
- prefix: Union[Global[IPv6Interface], Variable] = Field(..., description="Configure the IPv6 prefixes to aggregate")
422
- as_set: Optional[Union[Variable, Global[bool], Default[Literal[False]]]] = Field(
423
- default=None, serialization_alias="asSet", validation_alias="asSet", description="Set AS set path information"
424
- )
425
- summary_only: Optional[Union[Variable, Global[bool], Default[Literal[False]]]] = Field(
426
- default=None,
427
- serialization_alias="summaryOnly",
428
- validation_alias="summaryOnly",
429
- description="Variable out more specific routes from updates",
430
- )
431
-
432
-
433
- class Ipv6NetworkItem(BaseModel):
434
- model_config = ConfigDict(
435
- extra="forbid",
436
- populate_by_name=True,
437
- )
438
- prefix: Union[Global[IPv6Interface], Variable] = Field(
439
- ..., description="Configure the prefixes for BGP to announce"
440
- )
441
-
442
-
443
- class Ipv6RedistributeItem(BaseModel):
444
- model_config = ConfigDict(
445
- extra="forbid",
446
- populate_by_name=True,
447
- )
448
- protocol: Union[Global[RedistributeProtocolIpv6], Variable] = Field(
449
- ...,
450
- description="Set the protocol to redistribute routes from. "
451
- "Transport and Management Protocols don't have a 'omp' option",
452
- )
453
- route_policy: Optional[Union[Default[None], RefIdItem]] = Field(
454
- default=None,
455
- serialization_alias="routePolicy",
456
- validation_alias="routePolicy",
457
- description="Configure policy to apply to prefixes received from BGP neighbor",
458
- )
459
- metric: Optional[Union[Variable, Global[int], Default[None]]] = Field(default=None)
460
- ospf_match_route: Optional[Union[Global[List[OspfMatchRoute]], Variable, Default[None]]] = Field(
461
- default=None, validation_alias="ospfMatchRoute", serialization_alias="ospfMatchRoute"
462
- )
463
-
464
-
465
- class Ipv6AddressFamily(BaseModel):
466
- """
467
- Set BGP address family
468
- """
469
-
470
- model_config = ConfigDict(
471
- extra="forbid",
472
- populate_by_name=True,
473
- )
474
- ipv6_aggregate_address: Optional[List[Ipv6AggregateAddres]] = Field(
475
- default=None,
476
- serialization_alias="ipv6AggregateAddress",
477
- validation_alias="ipv6AggregateAddress",
478
- description="IPv6 Aggregate prefixes in specific range",
479
- )
480
- ipv6_network: Optional[List[Ipv6NetworkItem]] = Field(
481
- default=None,
482
- serialization_alias="ipv6Network",
483
- validation_alias="ipv6Network",
484
- description="Configure the networks for BGP to advertise",
485
- )
486
- paths: Optional[Union[Global[int], Variable, Default[None]]] = Field(
487
- default=None,
488
- description="Set maximum number of parallel IBGP paths for multipath load sharing. Maximum value is 32 paths.",
489
- )
490
- originate: Optional[Union[Variable, Global[bool], Default[Literal[False]]]] = Field(
491
- default=None, description="BGP Default Information Variable"
492
- )
493
- name: Optional[Union[Default[None], RefIdItem]] = Field(default=None, description="Table Map Policy name")
494
- filter: Optional[Union[Variable, Global[bool], Default[Literal[False]]]] = Field(
495
- default=None, description="Table map filtered or not"
496
- )
497
- redistribute: Optional[List[Ipv6RedistributeItem]] = Field(
498
- default=None, description="Redistribute routes into BGP", max_length=5
499
- )
500
-
501
-
502
- class MplsInterfaceItem(BaseModel):
503
- model_config = ConfigDict(
504
- extra="forbid",
505
- populate_by_name=True,
506
- )
507
- if_name: Union[Global[str], Variable] = Field(
508
- ..., serialization_alias="ifName", validation_alias="ifName", description="Interface Name"
509
- )
510
-
511
-
512
- class RoutingBgpParcel(_ParcelBase):
513
- type_: Literal["routing/bgp"] = Field(default="routing/bgp", exclude=True)
514
- model_config = ConfigDict(
515
- extra="forbid",
516
- populate_by_name=True,
517
- )
518
- as_num: Union[Global[int], Variable] = Field(
519
- validation_alias=AliasPath("data", "asNum"),
520
- description="Set autonomous system number <1..4294967295> or <XX.YY>",
521
- )
522
- router_id: Optional[Union[Global[IPv4Address], Variable, Default[None]]] = Field(
523
- default=None,
524
- validation_alias=AliasPath("data", "routerId"),
525
- description="Configure BGP router identifier",
526
- )
527
- propagate_aspath: Optional[Union[Variable, Global[bool], Default[Literal[False]]]] = Field(
528
- default=None,
529
- validation_alias=AliasPath("data", "propagateAspath"),
530
- description="Propagate AS Path",
531
- )
532
- propagate_community: Optional[Union[Variable, Global[bool], Default[Literal[False]]]] = Field(
533
- default=None,
534
- validation_alias=AliasPath("data", "propagateCommunity"),
535
- description="Propagate Community",
536
- )
537
- external: Optional[Union[Global[int], Variable, Default[int]]] = Field(
538
- default=None,
539
- description="Set administrative distance for external BGP routes. Maximum value is 255",
540
- validation_alias=AliasPath("data", "external"),
541
- )
542
- internal: Optional[Union[Global[int], Variable, Default[int]]] = Field(
543
- default=None,
544
- description="Set administrative distance for internal BGP routes. Maximum value is 255",
545
- validation_alias=AliasPath("data", "internal"),
546
- )
547
- local: Optional[Union[Global[int], Variable, Default[int]]] = Field(
548
- default=None,
549
- description="Set administrative distance for local BGP routes",
550
- validation_alias=AliasPath("data", "local"),
551
- )
552
- keepalive: Optional[Union[Global[int], Variable, Default[int]]] = Field(
553
- default=None,
554
- description="Interval (seconds) of keepalive messages sent to its BGP peer",
555
- validation_alias=AliasPath("data", "keepalive"),
556
- )
557
- holdtime: Optional[Union[Global[int], Variable, Default[int]]] = Field(
558
- default=None,
559
- description="Interval (seconds) not receiving a keepalive message declares a BGP peer down",
560
- validation_alias=AliasPath("data", "holdtime"),
561
- )
562
- always_compare: Optional[Union[Variable, Global[bool], Default[Literal[False]]]] = Field(
563
- default=None,
564
- validation_alias=AliasPath("data", "alwaysCompare"),
565
- description="Compare MEDs from all ASs when selecting active BGP paths",
566
- )
567
- deterministic: Optional[Union[Variable, Global[bool], Default[Literal[False]]]] = Field(
568
- default=None,
569
- description="Compare MEDs from all routes from same AS when selecting active BGP paths",
570
- validation_alias=AliasPath("data", "deterministic"),
571
- )
572
- missing_as_worst: Optional[Union[Variable, Global[bool], Default[Literal[False]]]] = Field(
573
- default=None,
574
- validation_alias=AliasPath("data", "missingAsWorst"),
575
- description="If path has no MED, consider it to be worst path when selecting active BGP paths",
576
- )
577
- compare_router_id: Optional[Union[Variable, Global[bool], Default[Literal[False]]]] = Field(
578
- default=None,
579
- validation_alias=AliasPath("data", "compareRouterId"),
580
- description="Compare router IDs when selecting active BGP paths",
581
- )
582
- multipath_relax: Optional[Union[Variable, Global[bool], Default[Literal[False]]]] = Field(
583
- default=None,
584
- validation_alias=AliasPath("data", "multipathRelax"),
585
- description="Ignore AS for multipath selection",
586
- )
587
- neighbor: Optional[List[NeighborItem]] = Field(
588
- default=None, validation_alias=AliasPath("data", "neighbor"), description="Set BGP IPv4 neighbors"
589
- )
590
- ipv6_neighbor: Optional[List[Ipv6NeighborItem]] = Field(
591
- default=None,
592
- validation_alias=AliasPath("data", "ipv6Neighbor"),
593
- description="Set BGP IPv6 neighbors",
594
- )
595
- address_family: Optional[AddressFamily] = Field(
596
- default=None,
597
- validation_alias=AliasPath("data", "addressFamily"),
598
- description="Set IPv4 unicast BGP address family",
599
- )
600
- ipv6_address_family: Optional[Ipv6AddressFamily] = Field(
601
- default=None,
602
- validation_alias=AliasPath("data", "ipv6AddressFamily"),
603
- description="Set BGP address family",
604
- )
605
- mpls_interface: Optional[List[MplsInterfaceItem]] = Field(
606
- default=None,
607
- validation_alias=AliasPath("data", "mplsInterface"),
608
- description="MPLS BGP Interface",
609
- )