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,52 +0,0 @@
1
- # Copyright 2024 Cisco Systems, Inc. and its affiliates
2
-
3
- # mypy: disable-error-code="empty-body"
4
- from uuid import UUID
5
-
6
- from catalystwan.endpoints import APIEndpoints, delete, get, post, put
7
- from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
8
- from catalystwan.models.policy.list.translation_rules import (
9
- TranslationRulesList,
10
- TranslationRulesListEditPayload,
11
- TranslationRulesListInfo,
12
- )
13
- from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
14
- from catalystwan.typed_list import DataSequence
15
-
16
-
17
- class ConfigurationPolicyTranslationRulesList(APIEndpoints, PolicyListEndpoints):
18
- @post("/template/policy/list/translationrules")
19
- def create_policy_list(self, payload: TranslationRulesList) -> PolicyListId:
20
- ...
21
-
22
- @delete("/template/policy/list/translationrules/{id}")
23
- def delete_policy_list(self, id: UUID) -> None:
24
- ...
25
-
26
- @delete("/template/policy/list/translationrules")
27
- def delete_policy_lists_with_info_tag(self, params: InfoTag) -> None:
28
- ...
29
-
30
- @put("/template/policy/list/translationrules/{id}")
31
- def edit_policy_list(self, id: UUID, payload: TranslationRulesListEditPayload) -> None:
32
- ...
33
-
34
- @get("/template/policy/list/translationrules/{id}")
35
- def get_lists_by_id(self, id: UUID) -> TranslationRulesListInfo:
36
- ...
37
-
38
- @get("/template/policy/list/translationrules", "data")
39
- def get_policy_lists(self) -> DataSequence[TranslationRulesListInfo]:
40
- ...
41
-
42
- @get("/template/policy/list/translationrules/filtered", "data")
43
- def get_policy_lists_with_info_tag(self, params: InfoTag) -> DataSequence[TranslationRulesListInfo]:
44
- ...
45
-
46
- @post("/template/policy/list/translationrules/preview")
47
- def preview_policy_list(self, payload: TranslationRulesList) -> PolicyListPreview:
48
- ...
49
-
50
- @get("/template/policy/list/translationrules/preview/{id}")
51
- def preview_policy_list_by_id(self, id: UUID) -> PolicyListPreview:
52
- ...
@@ -1,48 +0,0 @@
1
- # Copyright 2024 Cisco Systems, Inc. and its affiliates
2
-
3
- # mypy: disable-error-code="empty-body"
4
- from uuid import UUID
5
-
6
- from catalystwan.endpoints import APIEndpoints, delete, get, post, put
7
- from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
8
- from catalystwan.models.policy.list.trunkgroup import TrunkGroupList, TrunkGroupListEditPayload, TrunkGroupListInfo
9
- from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
10
- from catalystwan.typed_list import DataSequence
11
-
12
-
13
- class ConfigurationPolicyTrunkGroupList(APIEndpoints, PolicyListEndpoints):
14
- @post("/template/policy/list/trunkgroup")
15
- def create_policy_list(self, payload: TrunkGroupList) -> PolicyListId:
16
- ...
17
-
18
- @delete("/template/policy/list/trunkgroup/{id}")
19
- def delete_policy_list(self, id: UUID) -> None:
20
- ...
21
-
22
- @delete("/template/policy/list/trunkgroup")
23
- def delete_policy_lists_with_info_tag(self, params: InfoTag) -> None:
24
- ...
25
-
26
- @put("/template/policy/list/trunkgroup/{id}")
27
- def edit_policy_list(self, id: UUID, payload: TrunkGroupListEditPayload) -> None:
28
- ...
29
-
30
- @get("/template/policy/list/trunkgroup/{id}")
31
- def get_lists_by_id(self, id: UUID) -> TrunkGroupListInfo:
32
- ...
33
-
34
- @get("/template/policy/list/trunkgroup", "data")
35
- def get_policy_lists(self) -> DataSequence[TrunkGroupListInfo]:
36
- ...
37
-
38
- @get("/template/policy/list/trunkgroup/filtered", "data")
39
- def get_policy_lists_with_info_tag(self, params: InfoTag) -> DataSequence[TrunkGroupListInfo]:
40
- ...
41
-
42
- @post("/template/policy/list/trunkgroup/preview")
43
- def preview_policy_list(self, payload: TrunkGroupList) -> PolicyListPreview:
44
- ...
45
-
46
- @get("/template/policy/list/trunkgroup/preview/{id}")
47
- def preview_policy_list_by_id(self, id: UUID) -> PolicyListPreview:
48
- ...
@@ -1,52 +0,0 @@
1
- # Copyright 2024 Cisco Systems, Inc. and its affiliates
2
-
3
- # mypy: disable-error-code="empty-body"
4
- from uuid import UUID
5
-
6
- from catalystwan.endpoints import APIEndpoints, delete, get, post, put
7
- from catalystwan.endpoints.configuration.policy.abstractions import PolicyListEndpoints
8
- from catalystwan.models.policy.list.umbrella_data import (
9
- UmbrellaDataList,
10
- UmbrellaDataListEditPayload,
11
- UmbrellaDataListInfo,
12
- )
13
- from catalystwan.models.policy.policy_list import InfoTag, PolicyListId, PolicyListPreview
14
- from catalystwan.typed_list import DataSequence
15
-
16
-
17
- class ConfigurationPolicyUmbrellaDataList(APIEndpoints, PolicyListEndpoints):
18
- @post("/template/policy/list/umbrelladata")
19
- def create_policy_list(self, payload: UmbrellaDataList) -> PolicyListId:
20
- ...
21
-
22
- @delete("/template/policy/list/umbrelladata/{id}")
23
- def delete_policy_list(self, id: UUID) -> None:
24
- ...
25
-
26
- @delete("/template/policy/list/umbrelladata")
27
- def delete_policy_lists_with_info_tag(self, params: InfoTag) -> None:
28
- ...
29
-
30
- @put("/template/policy/list/umbrelladata/{id}")
31
- def edit_policy_list(self, id: UUID, payload: UmbrellaDataListEditPayload) -> None:
32
- ...
33
-
34
- @get("/template/policy/list/umbrelladata/{id}")
35
- def get_lists_by_id(self, id: UUID) -> UmbrellaDataListInfo:
36
- ...
37
-
38
- @get("/template/policy/list/umbrelladata", "data")
39
- def get_policy_lists(self) -> DataSequence[UmbrellaDataListInfo]:
40
- ...
41
-
42
- @get("/template/policy/list/umbrelladata/filtered", "data")
43
- def get_policy_lists_with_info_tag(self, params: InfoTag) -> DataSequence[UmbrellaDataListInfo]:
44
- ...
45
-
46
- @post("/template/policy/list/umbrelladata/preview")
47
- def preview_policy_list(self, payload: UmbrellaDataList) -> PolicyListPreview:
48
- ...
49
-
50
- @get("/template/policy/list/umbrelladata/preview/{id}")
51
- def preview_policy_list_by_id(self, id: UUID) -> PolicyListPreview:
52
- ...
@@ -1,39 +0,0 @@
1
- # Copyright 2024 Cisco Systems, Inc. and its affiliates
2
-
3
- # mypy: disable-error-code="empty-body"
4
- from uuid import UUID
5
-
6
- from catalystwan.endpoints import JSON, APIEndpoints, delete, get, post, put
7
- from catalystwan.models.policy.voice import VoicePolicy, VoicePolicyEditResponse, VoicePolicyInfo
8
- from catalystwan.typed_list import DataSequence
9
-
10
-
11
- class ConfigurationVoiceTemplatePolicy(APIEndpoints):
12
- @post("/template/policy/voice")
13
- def create_voice_template(self, payload: VoicePolicy) -> None:
14
- ...
15
-
16
- @delete("/template/policy/voice/{id}")
17
- def delete_voice_template(self, id: UUID, payload: JSON = {}) -> None:
18
- ...
19
-
20
- @put("/template/policy/voice/{id}")
21
- def edit_voice_template(self, id: UUID, payload: VoicePolicy) -> VoicePolicyEditResponse:
22
- # PUT /template/policy/voice/{policyId}
23
- ...
24
-
25
- def generate_voice_policy_summary(self):
26
- # GET /template/policy/voice/summary
27
- ...
28
-
29
- @get("/template/policy/voice", "data")
30
- def generate_voice_template_list(self) -> DataSequence[VoicePolicyInfo]:
31
- ...
32
-
33
- @get("/template/policy/voice/definition/{id}")
34
- def get_voice_template(self, id: UUID) -> VoicePolicy:
35
- ...
36
-
37
- def get_voice_templates_for_device(self):
38
- # GET /template/policy/voice/{deviceModel}
39
- ...
@@ -1,30 +0,0 @@
1
- # Copyright 2024 Cisco Systems, Inc. and its affiliates
2
-
3
- # mypy: disable-error-code="empty-body"
4
- from uuid import UUID
5
-
6
- from catalystwan.endpoints import APIEndpoints, delete, get, post, put, versions
7
- from catalystwan.models.configuration.policy_group import PolicyGroup, PolicyGroupId, PolicyGroupInfo
8
- from catalystwan.typed_list import DataSequence
9
-
10
-
11
- class PolicyGroupEndpoints(APIEndpoints):
12
- @post("/v1/policy-group")
13
- @versions(">=20.12")
14
- def create_policy_group(self, payload: PolicyGroup) -> PolicyGroupId:
15
- ...
16
-
17
- @get("/v1/policy-group")
18
- @versions(">=20.12")
19
- def get_all(self) -> DataSequence[PolicyGroupInfo]:
20
- ...
21
-
22
- @put("/v1/policy-group/{group_id}")
23
- @versions(">=20.12")
24
- def update(self, group_id: UUID, payload: PolicyGroup) -> None:
25
- ...
26
-
27
- @delete("/v1/policy-group/{group_id}")
28
- @versions(">=20.12")
29
- def delete(self, group_id: UUID) -> None:
30
- ...
@@ -1,51 +0,0 @@
1
- # Copyright 2024 Cisco Systems, Inc. and its affiliates
2
-
3
- # mypy: disable-error-code="empty-body"
4
- from uuid import UUID
5
-
6
- from catalystwan.endpoints import APIEndpoints, delete, get, post, put, versions
7
- from catalystwan.models.configuration.topology_group import (
8
- ActivateRequest,
9
- DeployResponse,
10
- Preview,
11
- TopologyGroup,
12
- TopologyGroupId,
13
- )
14
- from catalystwan.typed_list import DataSequence
15
-
16
-
17
- class TopologyGroupEndpoints(APIEndpoints):
18
- @post("/v1/topology-group")
19
- @versions(">=20.12")
20
- def create(self, payload: TopologyGroup) -> TopologyGroupId:
21
- ...
22
-
23
- @put("/v1/topology-group/{group_id}")
24
- @versions(">=20.12")
25
- def edit(self, group_id: UUID, payload: TopologyGroup) -> TopologyGroupId:
26
- ...
27
-
28
- @get("/v1/topology-group/{group_id}")
29
- @versions(">=20.12")
30
- def get_by_id(self, group_id: UUID) -> TopologyGroup:
31
- ...
32
-
33
- @get("/v1/topology-group")
34
- @versions(">=20.12")
35
- def get_all(self) -> DataSequence[TopologyGroupId]:
36
- ...
37
-
38
- @delete("/v1/topology-group/{group_id}")
39
- @versions(">=20.12")
40
- def delete(self, group_id: UUID) -> None:
41
- ...
42
-
43
- @post("/v1/topology-group/{group_id}/device/{device_id}/preview")
44
- @versions(">=20.12")
45
- def preview(self, group_id: UUID, device_id: UUID, payload: ActivateRequest) -> Preview:
46
- ...
47
-
48
- @post("/v1/topology-group/{group_id}/device/deploy")
49
- @versions(">=20.12")
50
- def deploy(self, group_id: UUID, payload: ActivateRequest) -> DeployResponse:
51
- ...
@@ -1,31 +0,0 @@
1
- # Copyright 2023 Cisco Systems, Inc. and its affiliates
2
-
3
- # mypy: disable-error-code="empty-body"
4
- from typing import Literal, Optional
5
- from uuid import UUID
6
-
7
- from pydantic import BaseModel, Field
8
-
9
- from catalystwan.endpoints import APIEndpoints, get
10
- from catalystwan.models.templates import FeatureTemplateDefinition, FeatureTemplateInformation
11
- from catalystwan.typed_list import DataSequence
12
-
13
- FeatureType = Literal["all", "vmanage-default", "network-design", "cloud-dock", "lawful-interception"]
14
-
15
-
16
- class FeatureQueryParams(BaseModel):
17
- summary: bool = Field(default=False)
18
- offset: Optional[int] = Field(default=None)
19
- limit: Optional[int] = Field(default=None)
20
-
21
-
22
- class ConfigurationGeneralTemplate(APIEndpoints):
23
- @get("/template/feature", "data")
24
- def get_feature_template_list(
25
- self, params: FeatureQueryParams = FeatureQueryParams()
26
- ) -> DataSequence[FeatureTemplateInformation]:
27
- ...
28
-
29
- @get("/template/feature/object/{template_id}")
30
- def get_template_definition(self, template_id: UUID) -> DataSequence[FeatureTemplateDefinition]:
31
- ...
@@ -1,48 +0,0 @@
1
- # Copyright 2023 Cisco Systems, Inc. and its affiliates
2
-
3
- # mypy: disable-error-code="empty-body"
4
-
5
- from typing import List, Optional
6
- from uuid import UUID
7
-
8
- from pydantic import BaseModel, ConfigDict, Field
9
-
10
- from catalystwan.endpoints import JSON, APIEndpoints, get, post, put
11
- from catalystwan.models.templates import DeviceTemplateInformation, FeatureType
12
- from catalystwan.typed_list import DataSequence
13
-
14
-
15
- class TemplateID(BaseModel):
16
- model_config = ConfigDict(populate_by_name=True)
17
-
18
- template_id: UUID = Field(serialization_alias="templateId", validation_alias="templateId")
19
-
20
-
21
- class AttachedDevices(BaseModel):
22
- model_config = ConfigDict(populate_by_name=True)
23
-
24
- attached_devices: Optional[List] = Field(
25
- default=[], serialization_alias="AttachedDevices", validation_alias="AttachedDevices"
26
- )
27
-
28
-
29
- class FeatureQueryParams(BaseModel):
30
- model_config = ConfigDict(populate_by_name=True)
31
-
32
- feature: FeatureType = Field(default="all")
33
-
34
-
35
- class ConfigurationTemplateMaster(APIEndpoints):
36
- @get("/template/device", "data")
37
- def get_device_template_list(
38
- self, params: FeatureQueryParams = FeatureQueryParams()
39
- ) -> DataSequence[DeviceTemplateInformation]:
40
- ...
41
-
42
- @post("/template/device/feature")
43
- def create_device_template_from_feature_templates(self, payload: JSON) -> TemplateID:
44
- ...
45
-
46
- @put("/template/device/{template_id}", "data")
47
- def edit_template(self, template_id: str, payload: JSON) -> AttachedDevices:
48
- ...
@@ -1,81 +0,0 @@
1
- # Copyright 2024 Cisco Systems, Inc. and its affiliates
2
- import logging
3
- import os
4
- import unittest
5
- from typing import Union
6
- from uuid import UUID, uuid4
7
-
8
- from packaging.version import Version # type: ignore
9
-
10
- from catalystwan.api.builders.feature_profiles.uc_voice import UcVoiceFeatureProfileAPI
11
- from catalystwan.api.feature_profile_api import (
12
- ApplicationPriorityFeatureProfileAPI,
13
- CliFeatureProfileAPI,
14
- DnsSecurityFeatureProfileAPI,
15
- OtherFeatureProfileAPI,
16
- ServiceFeatureProfileAPI,
17
- SIGSecurityAPI,
18
- SystemFeatureProfileAPI,
19
- TransportFeatureProfileAPI,
20
- )
21
- from catalystwan.exceptions import CatalystwanException
22
- from catalystwan.session import ManagerSession, create_manager_session
23
-
24
- logger = logging.getLogger(__name__)
25
-
26
- RUN_ID: str = str(uuid4())[:4]
27
-
28
-
29
- def load_config() -> dict:
30
- """Load the configuration from the environment variables"""
31
- url = os.environ.get("VMANAGE_URL")
32
- port = os.environ.get("VMANAGE_PORT")
33
- username = os.environ.get("VMANAGE_USERNAME")
34
- password = os.environ.get("VMANAGE_PASSWORD")
35
- if url is None or port is None or username is None or password is None:
36
- raise CatalystwanException("Missing environment variables")
37
- return dict(
38
- url=url,
39
- username=username,
40
- password=password,
41
- port=port,
42
- )
43
-
44
-
45
- def create_session() -> ManagerSession:
46
- """Try to create a session with the environment variables, if it fails, raise an exception"""
47
- try:
48
- session = create_manager_session(**load_config())
49
- return session
50
- except Exception:
51
- raise CatalystwanException("Failed to create session")
52
-
53
-
54
- SESSION = create_session()
55
- IS_API_20_12: bool = SESSION.api_version == Version("20.12")
56
-
57
-
58
- def create_name_with_run_id(name: str) -> str:
59
- """Prevent collisions when running on the same resource"""
60
- return f"{RUN_ID}_{name}"
61
-
62
-
63
- class TestCaseBase(unittest.TestCase):
64
- session: ManagerSession
65
- profile_uuid: UUID
66
-
67
- api: Union[
68
- ApplicationPriorityFeatureProfileAPI,
69
- CliFeatureProfileAPI,
70
- DnsSecurityFeatureProfileAPI,
71
- OtherFeatureProfileAPI,
72
- ServiceFeatureProfileAPI,
73
- SIGSecurityAPI,
74
- SystemFeatureProfileAPI,
75
- TransportFeatureProfileAPI,
76
- UcVoiceFeatureProfileAPI,
77
- ]
78
-
79
- @classmethod
80
- def setUpClass(cls) -> None:
81
- cls.session = SESSION
@@ -1,33 +0,0 @@
1
- # Copyright 2024 Cisco Systems, Inc. and its affiliates
2
- from typing import Type
3
-
4
- from catalystwan.api.feature_profile_api import PolicyObjectFeatureProfileAPI
5
- from catalystwan.endpoints.configuration_feature_profile import ConfigurationFeatureProfile
6
- from catalystwan.integration_tests.base import TestCaseBase
7
- from catalystwan.models.configuration.feature_profile.sdwan.policy_object import AnyPolicyObjectParcel
8
-
9
-
10
- class PolicyTestCaseBase(TestCaseBase):
11
- policy_api: PolicyObjectFeatureProfileAPI
12
- parcel_type: Type[AnyPolicyObjectParcel]
13
-
14
- @classmethod
15
- def setUpClass(cls) -> None:
16
- super().setUpClass()
17
- cls.policy_api = cls.session.api.sdwan_feature_profiles.policy_object
18
- cls.profile_uuid = (
19
- ConfigurationFeatureProfile(cls.session)
20
- .get_sdwan_feature_profiles()
21
- .filter(profile_type="policy-object")
22
- .single_or_default()
23
- ).profile_id
24
-
25
- def setUp(self) -> None:
26
- self.created_id = None
27
- return super().setUp()
28
-
29
- def tearDown(self) -> None:
30
- if self.created_id:
31
- self.policy_api.delete(self.profile_uuid, self.parcel_type, self.created_id)
32
-
33
- return super().tearDown()
@@ -1,33 +0,0 @@
1
- # Copyright 2024 Cisco Systems, Inc. and its affiliates
2
-
3
- from catalystwan.integration_tests.base import create_name_with_run_id
4
- from catalystwan.integration_tests.feature_profile.sdwan.policy.base import PolicyTestCaseBase
5
- from catalystwan.models.configuration.feature_profile.sdwan.policy_object import ExtendedCommunityParcel
6
- from catalystwan.typed_list import DataSequence
7
-
8
-
9
- class TestExtendedCommunityParcel(PolicyTestCaseBase):
10
- parcel_type = ExtendedCommunityParcel
11
-
12
- def test_get_all_parcels(self):
13
- parcels = self.policy_api.get(self.profile_uuid, self.parcel_type)
14
- assert type(parcels) is DataSequence
15
-
16
- def test_create_extended_community_parcel(self):
17
- # Arrange
18
- parcel_name = create_name_with_run_id("ext")
19
- ext = ExtendedCommunityParcel(parcel_name=parcel_name)
20
- ext.add_route_target_community(100, 2000)
21
- ext.add_route_target_community(300, 5000)
22
- ext.add_site_of_origin_community("1.2.3.4", 1000)
23
- ext.add_site_of_origin_community("10.20.30.40", 3000)
24
- # Act
25
- self.created_id = self.policy_api.create_parcel(self.profile_uuid, ext).id
26
- parcel = self.policy_api.get(self.profile_uuid, self.parcel_type, parcel_id=self.created_id)
27
- # Assert
28
- assert parcel.payload.parcel_name == parcel_name
29
- assert len(parcel.payload.entries) == 4
30
- assert parcel.payload.entries[0].extended_community.value == "rt 100:2000"
31
- assert parcel.payload.entries[1].extended_community.value == "rt 300:5000"
32
- assert parcel.payload.entries[2].extended_community.value == "soo 1.2.3.4:1000"
33
- assert parcel.payload.entries[3].extended_community.value == "soo 10.20.30.40:3000"
@@ -1,32 +0,0 @@
1
- # Copyright 2024 Cisco Systems, Inc. and its affiliates
2
- from catalystwan.integration_tests.base import create_name_with_run_id
3
- from catalystwan.integration_tests.feature_profile.sdwan.policy.base import PolicyTestCaseBase
4
- from catalystwan.models.configuration.feature_profile.sdwan.policy_object.security.application_list import (
5
- SecurityApplicationListParcel,
6
- )
7
- from catalystwan.typed_list import DataSequence
8
-
9
-
10
- class TestSecurityApplicationListParcel(PolicyTestCaseBase):
11
- parcel_type = SecurityApplicationListParcel
12
-
13
- def test_get_all_parcels(self):
14
- parcels = self.policy_api.get(self.profile_uuid, self.parcel_type)
15
- assert type(parcels) is DataSequence
16
-
17
- def test_createsecurity_application_list_parcel(self):
18
- # Arrange
19
- parcel_name = create_name_with_run_id("sal")
20
- sal = SecurityApplicationListParcel(parcel_name=parcel_name)
21
- sal.add_application_family("web")
22
- sal.add_application_family("file-server")
23
- sal.add_application_family("audio-video")
24
- # Act
25
- self.created_id = self.policy_api.create_parcel(self.profile_uuid, sal).id
26
- parcel = self.policy_api.get(self.profile_uuid, self.parcel_type, parcel_id=self.created_id)
27
- # Assert
28
- assert parcel.payload.parcel_name == parcel_name
29
- assert len(parcel.payload.entries) == 3
30
- assert parcel.payload.entries[0].app_list_family.value == "web"
31
- assert parcel.payload.entries[1].app_list_family.value == "file-server"
32
- assert parcel.payload.entries[2].app_list_family.value == "audio-video"