catalystwan 0.41.2__py3-none-any.whl → 0.41.2.dev0__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 (504) hide show
  1. catalystwan/__init__.py +3 -2
  2. catalystwan/api/administration.py +13 -2
  3. catalystwan/api/api_container.py +4 -1
  4. catalystwan/api/builders/__init__.py +14 -0
  5. catalystwan/api/builders/feature_profiles/__init__.py +0 -0
  6. catalystwan/api/builders/feature_profiles/application_priority.py +58 -0
  7. catalystwan/api/builders/feature_profiles/builder_factory.py +59 -0
  8. catalystwan/api/builders/feature_profiles/cli.py +76 -0
  9. catalystwan/api/builders/feature_profiles/mixins.py +44 -0
  10. catalystwan/api/builders/feature_profiles/other.py +79 -0
  11. catalystwan/api/builders/feature_profiles/report.py +155 -0
  12. catalystwan/api/builders/feature_profiles/service.py +248 -0
  13. catalystwan/api/builders/feature_profiles/system.py +80 -0
  14. catalystwan/api/builders/feature_profiles/transport.py +256 -0
  15. catalystwan/api/builders/feature_profiles/uc_voice.py +287 -0
  16. catalystwan/api/config_group_api.py +41 -16
  17. catalystwan/api/configuration_groups/parcel.py +100 -30
  18. catalystwan/api/feature_profile_api.py +2021 -242
  19. catalystwan/api/policy_api.py +470 -116
  20. catalystwan/api/template_api.py +113 -44
  21. catalystwan/api/templates/README.md +61 -47
  22. catalystwan/api/templates/cli_template.py +17 -7
  23. catalystwan/api/templates/device_template/device_template.py +127 -32
  24. catalystwan/api/templates/feature_template.py +3 -3
  25. catalystwan/api/templates/models/aaa_model.py +387 -0
  26. catalystwan/api/templates/models/cisco_aaa_model.py +289 -42
  27. catalystwan/api/templates/models/cisco_banner_model.py +11 -2
  28. catalystwan/api/templates/models/cisco_bfd_model.py +31 -36
  29. catalystwan/api/templates/models/cisco_bgp_model.py +382 -131
  30. catalystwan/api/templates/models/cisco_logging_model.py +80 -43
  31. catalystwan/api/templates/models/cisco_ntp_model.py +34 -15
  32. catalystwan/api/templates/models/cisco_omp_model.py +70 -60
  33. catalystwan/api/templates/models/cisco_ospf.py +143 -74
  34. catalystwan/api/templates/models/cisco_ospfv3.py +217 -95
  35. catalystwan/api/templates/models/cisco_secure_internet_gateway.py +304 -142
  36. catalystwan/api/templates/models/cisco_snmp_model.py +66 -52
  37. catalystwan/api/templates/models/cisco_system.py +238 -129
  38. catalystwan/api/templates/models/cisco_vpn_interface_model.py +632 -275
  39. catalystwan/api/templates/models/cisco_vpn_model.py +433 -270
  40. catalystwan/api/templates/models/cli_template.py +3 -2
  41. catalystwan/api/templates/models/omp_vsmart_model.py +46 -10
  42. catalystwan/api/templates/models/security_vsmart_model.py +11 -8
  43. catalystwan/api/templates/models/supported.py +10 -4
  44. catalystwan/api/templates/models/system_vsmart_model.py +164 -27
  45. catalystwan/api/templates/models/vpn_vsmart_interface_model.py +198 -0
  46. catalystwan/api/templates/models/vpn_vsmart_model.py +124 -0
  47. catalystwan/apigw_auth.py +6 -2
  48. catalystwan/dataclasses.py +2 -53
  49. catalystwan/endpoints/__init__.py +41 -41
  50. catalystwan/endpoints/certificate_management_device.py +4 -0
  51. catalystwan/endpoints/cluster_management.py +27 -7
  52. catalystwan/endpoints/configuration/feature_profile/sdwan/application_priority.py +107 -0
  53. catalystwan/endpoints/configuration/feature_profile/sdwan/cli.py +60 -0
  54. catalystwan/endpoints/configuration/feature_profile/sdwan/dns_security.py +83 -0
  55. catalystwan/endpoints/configuration/feature_profile/sdwan/embedded_security.py +88 -0
  56. catalystwan/endpoints/configuration/feature_profile/sdwan/other.py +62 -0
  57. catalystwan/endpoints/configuration/feature_profile/sdwan/policy_object.py +35 -12
  58. catalystwan/endpoints/configuration/feature_profile/sdwan/service.py +154 -0
  59. catalystwan/endpoints/configuration/feature_profile/sdwan/sig_security.py +88 -0
  60. catalystwan/endpoints/configuration/feature_profile/sdwan/system.py +164 -11
  61. catalystwan/endpoints/configuration/feature_profile/sdwan/topology.py +93 -0
  62. catalystwan/endpoints/configuration/feature_profile/sdwan/transport.py +144 -26
  63. catalystwan/endpoints/configuration/feature_profile/sdwan/uc_voice.py +77 -0
  64. catalystwan/endpoints/configuration/network_hierarchy.py +32 -0
  65. catalystwan/endpoints/configuration/policy/abstractions.py +49 -0
  66. catalystwan/endpoints/configuration/policy/definition/access_control_list.py +6 -11
  67. catalystwan/endpoints/configuration/policy/definition/access_control_list_ipv6.py +6 -11
  68. catalystwan/endpoints/configuration/policy/definition/aip.py +52 -0
  69. catalystwan/endpoints/configuration/policy/definition/amp.py +52 -0
  70. catalystwan/endpoints/configuration/policy/definition/app_route.py +50 -0
  71. catalystwan/endpoints/configuration/policy/definition/cflowd.py +46 -0
  72. catalystwan/endpoints/configuration/policy/definition/control.py +6 -11
  73. catalystwan/endpoints/configuration/policy/definition/device_access.py +6 -11
  74. catalystwan/endpoints/configuration/policy/definition/device_access_ipv6.py +6 -11
  75. catalystwan/endpoints/configuration/policy/definition/dial_peer.py +57 -0
  76. catalystwan/endpoints/configuration/policy/definition/dns_security.py +50 -0
  77. catalystwan/endpoints/configuration/policy/definition/fxo_port.py +57 -0
  78. catalystwan/endpoints/configuration/policy/definition/fxs_did_port.py +57 -0
  79. catalystwan/endpoints/configuration/policy/definition/fxs_port.py +57 -0
  80. catalystwan/endpoints/configuration/policy/definition/hub_and_spoke.py +6 -11
  81. catalystwan/endpoints/configuration/policy/definition/intrusion_prevention.py +52 -0
  82. catalystwan/endpoints/configuration/policy/definition/mesh.py +2 -11
  83. catalystwan/endpoints/configuration/policy/definition/pri_isdn_port.py +57 -0
  84. catalystwan/endpoints/configuration/policy/definition/qos_map.py +2 -11
  85. catalystwan/endpoints/configuration/policy/definition/rewrite.py +6 -11
  86. catalystwan/endpoints/configuration/policy/definition/route_policy.py +50 -0
  87. catalystwan/endpoints/configuration/policy/definition/rule_set.py +2 -11
  88. catalystwan/endpoints/configuration/policy/definition/security_group.py +6 -11
  89. catalystwan/endpoints/configuration/policy/definition/srst_phone_profile.py +59 -0
  90. catalystwan/endpoints/configuration/policy/definition/ssl_decryption.py +50 -0
  91. catalystwan/endpoints/configuration/policy/definition/ssl_decryption_utd_profile.py +52 -0
  92. catalystwan/endpoints/configuration/policy/definition/traffic_data.py +6 -11
  93. catalystwan/endpoints/configuration/policy/definition/url_filtering.py +50 -0
  94. catalystwan/endpoints/configuration/policy/definition/vpn_membership.py +6 -11
  95. catalystwan/endpoints/configuration/policy/definition/vpn_qos_map.py +50 -0
  96. catalystwan/endpoints/configuration/policy/definition/zone_based_firewall.py +6 -11
  97. catalystwan/endpoints/configuration/policy/list/app.py +3 -16
  98. catalystwan/endpoints/configuration/policy/list/app_probe.py +6 -15
  99. catalystwan/endpoints/configuration/policy/list/as_path.py +3 -16
  100. catalystwan/endpoints/configuration/policy/list/class_map.py +3 -16
  101. catalystwan/endpoints/configuration/policy/list/color.py +3 -16
  102. catalystwan/endpoints/configuration/policy/list/community.py +3 -16
  103. catalystwan/endpoints/configuration/policy/list/data_ipv6_prefix.py +6 -15
  104. catalystwan/endpoints/configuration/policy/list/data_prefix.py +3 -16
  105. catalystwan/endpoints/configuration/policy/list/expanded_community.py +6 -15
  106. catalystwan/endpoints/configuration/policy/list/extended_community.py +52 -0
  107. catalystwan/endpoints/configuration/policy/list/fax_protocol.py +48 -0
  108. catalystwan/endpoints/configuration/policy/list/fqdn.py +3 -16
  109. catalystwan/endpoints/configuration/policy/list/geo_location.py +3 -16
  110. catalystwan/endpoints/configuration/policy/list/identity.py +48 -0
  111. catalystwan/endpoints/configuration/policy/list/ips_signature.py +6 -15
  112. catalystwan/endpoints/configuration/policy/list/ipv6_prefix.py +3 -16
  113. catalystwan/endpoints/configuration/policy/list/local_app.py +3 -16
  114. catalystwan/endpoints/configuration/policy/list/local_domain.py +3 -16
  115. catalystwan/endpoints/configuration/policy/list/media_profile.py +52 -0
  116. catalystwan/endpoints/configuration/policy/list/mirror.py +3 -16
  117. catalystwan/endpoints/configuration/policy/list/modem_pass_through.py +52 -0
  118. catalystwan/endpoints/configuration/policy/list/policer.py +3 -16
  119. catalystwan/endpoints/configuration/policy/list/port.py +3 -16
  120. catalystwan/endpoints/configuration/policy/list/preferred_color_group.py +6 -15
  121. catalystwan/endpoints/configuration/policy/list/prefix.py +4 -16
  122. catalystwan/endpoints/configuration/policy/list/protocol_name.py +6 -15
  123. catalystwan/endpoints/configuration/policy/list/region.py +2 -10
  124. catalystwan/endpoints/configuration/policy/list/scalable_group_tag.py +52 -0
  125. catalystwan/endpoints/configuration/policy/list/site.py +3 -16
  126. catalystwan/endpoints/configuration/policy/list/sla.py +3 -16
  127. catalystwan/endpoints/configuration/policy/list/supervisory_disconnect.py +52 -0
  128. catalystwan/endpoints/configuration/policy/list/threat_grid_api_key.py +52 -0
  129. catalystwan/endpoints/configuration/policy/list/tloc.py +3 -16
  130. catalystwan/endpoints/configuration/policy/list/translation_profile.py +52 -0
  131. catalystwan/endpoints/configuration/policy/list/translation_rules.py +52 -0
  132. catalystwan/endpoints/configuration/policy/list/trunkgroup.py +48 -0
  133. catalystwan/endpoints/configuration/policy/list/umbrella_data.py +52 -0
  134. catalystwan/endpoints/configuration/policy/list/url_allow_list.py +3 -16
  135. catalystwan/endpoints/configuration/policy/list/url_block_list.py +3 -16
  136. catalystwan/endpoints/configuration/policy/list/vpn.py +3 -16
  137. catalystwan/endpoints/configuration/policy/list/zone.py +3 -16
  138. catalystwan/endpoints/configuration/policy/security_template.py +2 -3
  139. catalystwan/endpoints/configuration/policy/voice_template.py +39 -0
  140. catalystwan/endpoints/configuration/policy_group.py +30 -0
  141. catalystwan/endpoints/configuration/software_actions.py +2 -4
  142. catalystwan/endpoints/configuration/topology_group.py +51 -0
  143. catalystwan/endpoints/configuration_dashboard_status.py +2 -2
  144. catalystwan/endpoints/configuration_device_template.py +15 -1
  145. catalystwan/endpoints/configuration_feature_profile.py +8 -11
  146. catalystwan/endpoints/configuration_general_template.py +31 -0
  147. catalystwan/endpoints/configuration_group.py +28 -5
  148. catalystwan/endpoints/configuration_settings.py +90 -1
  149. catalystwan/endpoints/configuration_template_master.py +48 -0
  150. catalystwan/endpoints/endpoints_container.py +79 -19
  151. catalystwan/endpoints/real_time_monitoring/reboot_history.py +1 -3
  152. catalystwan/endpoints/tenant_migration.py +2 -0
  153. catalystwan/exceptions.py +17 -0
  154. catalystwan/integration_tests/base.py +81 -0
  155. catalystwan/integration_tests/feature_profile/sdwan/__init__.py +0 -0
  156. catalystwan/integration_tests/feature_profile/sdwan/policy/__init__.py +0 -0
  157. catalystwan/integration_tests/feature_profile/sdwan/policy/base.py +33 -0
  158. catalystwan/integration_tests/feature_profile/sdwan/policy/test_extended_community.py +33 -0
  159. catalystwan/integration_tests/feature_profile/sdwan/policy/test_security_app_list.py +32 -0
  160. catalystwan/integration_tests/feature_profile/sdwan/test_application_priority.py +433 -0
  161. catalystwan/integration_tests/feature_profile/sdwan/test_cli.py +54 -0
  162. catalystwan/integration_tests/feature_profile/sdwan/test_dns_security.py +106 -0
  163. catalystwan/integration_tests/feature_profile/sdwan/test_other.py +49 -0
  164. catalystwan/integration_tests/feature_profile/sdwan/test_service.py +1078 -0
  165. catalystwan/integration_tests/feature_profile/sdwan/test_sig_security.py +322 -0
  166. catalystwan/integration_tests/feature_profile/sdwan/test_ssl_decryption.py +85 -0
  167. catalystwan/integration_tests/feature_profile/sdwan/test_system.py +368 -0
  168. catalystwan/integration_tests/feature_profile/sdwan/test_tracker.py +127 -0
  169. catalystwan/integration_tests/feature_profile/sdwan/test_transport.py +1698 -0
  170. catalystwan/integration_tests/feature_profile/sdwan/topology/test_topology.py +93 -0
  171. catalystwan/integration_tests/profile_builder/__init__.py +0 -0
  172. catalystwan/integration_tests/profile_builder/test_pb_service.py +197 -0
  173. catalystwan/integration_tests/profile_builder/test_pb_transport.py +226 -0
  174. catalystwan/integration_tests/profile_builder/test_pb_uc_voice.py +277 -0
  175. catalystwan/integration_tests/test_data/__init__.py +117 -0
  176. catalystwan/integration_tests/test_find_template_values.py +7 -18
  177. catalystwan/integration_tests/test_network_hierarchy.py +82 -0
  178. catalystwan/integration_tests/test_settings.py +30 -0
  179. catalystwan/models/common.py +1898 -2
  180. catalystwan/models/configuration/common.py +1 -0
  181. catalystwan/models/configuration/feature_profile/common.py +634 -149
  182. catalystwan/models/configuration/feature_profile/parcel.py +238 -0
  183. catalystwan/models/configuration/feature_profile/sdwan/acl/__init__.py +13 -0
  184. catalystwan/models/configuration/feature_profile/sdwan/acl/ipv4acl.py +298 -0
  185. catalystwan/models/configuration/feature_profile/sdwan/acl/ipv6acl.py +344 -0
  186. catalystwan/models/configuration/feature_profile/sdwan/application_priority/__init__.py +218 -0
  187. catalystwan/models/configuration/feature_profile/sdwan/application_priority/cloud_probe.py +61 -0
  188. catalystwan/models/configuration/feature_profile/sdwan/application_priority/policy_settings.py +31 -0
  189. catalystwan/models/configuration/feature_profile/sdwan/application_priority/qos_policy.py +102 -0
  190. catalystwan/models/configuration/feature_profile/sdwan/application_priority/traffic_policy.py +1057 -0
  191. catalystwan/models/configuration/feature_profile/sdwan/cli/__init__.py +23 -0
  192. catalystwan/models/configuration/feature_profile/sdwan/cli/config.py +18 -0
  193. catalystwan/models/configuration/feature_profile/sdwan/cli/full_config.py +15 -0
  194. catalystwan/models/configuration/feature_profile/sdwan/dns_security/__init__.py +13 -0
  195. catalystwan/models/configuration/feature_profile/sdwan/dns_security/dns.py +110 -0
  196. catalystwan/models/configuration/feature_profile/sdwan/embedded_security/__init__.py +23 -0
  197. catalystwan/models/configuration/feature_profile/sdwan/embedded_security/ngfirewall.py +493 -0
  198. catalystwan/models/configuration/feature_profile/sdwan/embedded_security/policy.py +171 -0
  199. catalystwan/models/configuration/feature_profile/sdwan/other/__init__.py +25 -0
  200. catalystwan/models/configuration/feature_profile/sdwan/other/cybervision.py +44 -0
  201. catalystwan/models/configuration/feature_profile/sdwan/other/thousandeyes.py +147 -0
  202. catalystwan/models/configuration/feature_profile/sdwan/other/ucse.py +110 -0
  203. catalystwan/models/configuration/feature_profile/sdwan/policy_object/__init__.py +62 -48
  204. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/app_probe.py +34 -20
  205. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/application_list.py +8 -6
  206. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/as_path.py +22 -0
  207. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/color_list.py +7 -5
  208. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/data_prefix.py +13 -4
  209. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/expanded_community_list.py +9 -7
  210. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/extended_community.py +34 -0
  211. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/fowarding_class.py +7 -5
  212. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv4_network_object.py +15 -0
  213. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv4_service_object.py +254 -0
  214. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv6_data_prefix.py +11 -9
  215. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/ipv6_prefix_list.py +25 -10
  216. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/mirror.py +27 -0
  217. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/network_object_group.py +15 -0
  218. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/object_group.py +15 -0
  219. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/{policier.py → policer.py} +12 -10
  220. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/prefered_group_color.py +29 -10
  221. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/prefix_list.py +23 -8
  222. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/service_object_group.py +21 -0
  223. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/sla_class.py +12 -31
  224. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/standard_community.py +16 -10
  225. catalystwan/models/configuration/feature_profile/sdwan/policy_object/policy/tloc_list.py +8 -7
  226. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/aip.py +64 -0
  227. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/amp.py +79 -0
  228. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/application_list.py +8 -6
  229. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/data_prefix.py +7 -5
  230. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/fqdn.py +7 -5
  231. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/geolocation_list.py +7 -5
  232. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/identity.py +30 -0
  233. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/intrusion_prevention.py +58 -0
  234. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ips_signature.py +7 -5
  235. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/local_domain.py +7 -5
  236. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/object_group.py +72 -0
  237. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/protocol_list.py +7 -5
  238. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/rule_set.py +137 -0
  239. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/scalable_group_tag.py +26 -0
  240. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/security_port.py +21 -11
  241. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ssl_decryption.py +126 -0
  242. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/ssl_decryption_profile.py +165 -0
  243. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/url.py +15 -10
  244. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/url_filtering.py +148 -0
  245. catalystwan/models/configuration/feature_profile/sdwan/policy_object/security/zone.py +14 -18
  246. catalystwan/models/configuration/feature_profile/sdwan/routing/__init__.py +26 -0
  247. catalystwan/models/configuration/feature_profile/sdwan/routing/bgp.py +609 -0
  248. catalystwan/models/configuration/feature_profile/sdwan/{service → routing}/ospf.py +55 -47
  249. catalystwan/models/configuration/feature_profile/sdwan/{service → routing}/ospfv3.py +74 -72
  250. catalystwan/models/configuration/feature_profile/sdwan/service/__init__.py +91 -0
  251. catalystwan/models/configuration/feature_profile/sdwan/service/appqoe.py +76 -41
  252. catalystwan/models/configuration/feature_profile/sdwan/service/dhcp_server.py +107 -64
  253. catalystwan/models/configuration/feature_profile/sdwan/service/dual_router_ha.py +26 -0
  254. catalystwan/models/configuration/feature_profile/sdwan/service/eigrp.py +39 -42
  255. catalystwan/models/configuration/feature_profile/sdwan/service/lan/common.py +7 -88
  256. catalystwan/models/configuration/feature_profile/sdwan/service/lan/ethernet.py +231 -155
  257. catalystwan/models/configuration/feature_profile/sdwan/service/lan/gre.py +38 -108
  258. catalystwan/models/configuration/feature_profile/sdwan/service/lan/ipsec.py +77 -84
  259. catalystwan/models/configuration/feature_profile/sdwan/service/lan/multilink.py +101 -0
  260. catalystwan/models/configuration/feature_profile/sdwan/service/lan/svi.py +62 -56
  261. catalystwan/models/configuration/feature_profile/sdwan/service/lan/vpn.py +111 -120
  262. catalystwan/models/configuration/feature_profile/sdwan/service/multicast.py +56 -57
  263. catalystwan/models/configuration/feature_profile/sdwan/service/object_tracker.py +15 -21
  264. catalystwan/models/configuration/feature_profile/sdwan/service/route_policy.py +358 -110
  265. catalystwan/models/configuration/feature_profile/sdwan/service/service_chain.py +38 -0
  266. catalystwan/models/configuration/feature_profile/sdwan/service/service_insertion_attachment.py +17 -25
  267. catalystwan/models/configuration/feature_profile/sdwan/service/switchport.py +50 -58
  268. catalystwan/models/configuration/feature_profile/sdwan/service/tracker.py +12 -21
  269. catalystwan/models/configuration/feature_profile/sdwan/service/wireless_lan.py +27 -31
  270. catalystwan/models/configuration/feature_profile/sdwan/sig_security/__init__.py +19 -0
  271. catalystwan/models/configuration/feature_profile/sdwan/sig_security/sig_security.py +379 -0
  272. catalystwan/models/configuration/feature_profile/sdwan/system/__init__.py +59 -0
  273. catalystwan/models/configuration/feature_profile/sdwan/system/aaa.py +58 -10
  274. catalystwan/models/configuration/feature_profile/sdwan/system/banner.py +30 -0
  275. catalystwan/models/configuration/feature_profile/sdwan/system/basic.py +290 -0
  276. catalystwan/models/configuration/feature_profile/sdwan/system/bfd.py +69 -0
  277. catalystwan/models/configuration/feature_profile/sdwan/system/device_access.py +157 -0
  278. catalystwan/models/configuration/feature_profile/sdwan/system/device_access_ipv6.py +157 -0
  279. catalystwan/models/configuration/feature_profile/sdwan/system/global_parcel.py +163 -0
  280. catalystwan/models/configuration/feature_profile/sdwan/system/logging_parcel.py +162 -0
  281. catalystwan/models/configuration/feature_profile/sdwan/system/mrf.py +75 -0
  282. catalystwan/models/configuration/feature_profile/sdwan/system/ntp.py +103 -0
  283. catalystwan/models/configuration/feature_profile/sdwan/system/omp.py +120 -0
  284. catalystwan/models/configuration/feature_profile/sdwan/system/security.py +179 -0
  285. catalystwan/models/configuration/feature_profile/sdwan/system/snmp.py +173 -0
  286. catalystwan/models/configuration/feature_profile/sdwan/topology/__init__.py +29 -0
  287. catalystwan/models/configuration/feature_profile/sdwan/topology/custom_control.py +425 -0
  288. catalystwan/models/configuration/feature_profile/sdwan/topology/hubspoke.py +60 -0
  289. catalystwan/models/configuration/feature_profile/sdwan/topology/mesh.py +23 -0
  290. catalystwan/models/configuration/feature_profile/sdwan/trackers/__init__.py +36 -0
  291. catalystwan/models/configuration/feature_profile/sdwan/trackers/tracker.py +96 -0
  292. catalystwan/models/configuration/feature_profile/sdwan/trackers/tracker_group.py +63 -0
  293. catalystwan/models/configuration/feature_profile/sdwan/transport/__init__.py +93 -0
  294. catalystwan/models/configuration/feature_profile/sdwan/transport/cellular_controller.py +26 -23
  295. catalystwan/models/configuration/feature_profile/sdwan/transport/cellular_profile.py +71 -0
  296. catalystwan/models/configuration/feature_profile/sdwan/transport/gps.py +37 -0
  297. catalystwan/models/configuration/feature_profile/sdwan/transport/management/ethernet.py +121 -0
  298. catalystwan/models/configuration/feature_profile/sdwan/transport/t1e1controller.py +124 -0
  299. catalystwan/models/configuration/feature_profile/sdwan/transport/vpn.py +285 -0
  300. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/cellular.py +173 -0
  301. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/ethernet.py +389 -0
  302. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/gre.py +46 -0
  303. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/ipsec.py +137 -0
  304. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/multilink.py +219 -0
  305. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/protocol_over.py +405 -0
  306. catalystwan/models/configuration/feature_profile/sdwan/transport/wan/interface/t1e1serial.py +195 -0
  307. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/__init__.py +62 -0
  308. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/analog_interface.py +436 -0
  309. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/call_routing.py +179 -0
  310. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/digital_interface.py +380 -0
  311. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/dsp_farm.py +193 -0
  312. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/media_profile.py +17 -0
  313. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/server_group.py +51 -0
  314. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/srst.py +86 -0
  315. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/supervisory_disconnect.py +69 -0
  316. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/translation_profile.py +42 -0
  317. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/translation_rule.py +31 -0
  318. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/trunk_group.py +26 -0
  319. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/voice_global.py +55 -0
  320. catalystwan/models/configuration/feature_profile/sdwan/uc_voice/voice_tenant.py +40 -0
  321. catalystwan/models/configuration/network_hierarchy/__init__.py +22 -0
  322. catalystwan/models/configuration/network_hierarchy/cflowd.py +120 -0
  323. catalystwan/models/configuration/network_hierarchy/node.py +88 -0
  324. catalystwan/models/configuration/policy_group.py +74 -0
  325. catalystwan/models/configuration/profile_type.py +1 -6
  326. catalystwan/models/configuration/topology_group.py +52 -0
  327. catalystwan/models/policy/__init__.py +275 -69
  328. catalystwan/models/policy/centralized.py +26 -29
  329. catalystwan/models/policy/{definitions → definition}/access_control_list.py +47 -17
  330. catalystwan/models/policy/{definitions → definition}/access_control_list_ipv6.py +42 -18
  331. catalystwan/models/policy/definition/aip.py +60 -0
  332. catalystwan/models/policy/definition/amp.py +65 -0
  333. catalystwan/models/policy/definition/app_route.py +246 -0
  334. catalystwan/models/policy/definition/cflowd.py +95 -0
  335. catalystwan/models/policy/{definitions → definition}/control.py +48 -25
  336. catalystwan/models/policy/{definitions → definition}/device_access.py +22 -11
  337. catalystwan/models/policy/{definitions → definition}/device_access_ipv6.py +20 -11
  338. catalystwan/models/policy/definition/dial_peer.py +60 -0
  339. catalystwan/models/policy/definition/dns_security.py +130 -0
  340. catalystwan/models/policy/definition/fxo_port.py +63 -0
  341. catalystwan/models/policy/definition/fxs_did_port.py +58 -0
  342. catalystwan/models/policy/definition/fxs_port.py +56 -0
  343. catalystwan/models/policy/{definitions → definition}/hub_and_spoke.py +18 -4
  344. catalystwan/models/policy/definition/intrusion_prevention.py +55 -0
  345. catalystwan/models/policy/{definitions → definition}/mesh.py +13 -1
  346. catalystwan/models/policy/definition/pri_isdn_port.py +48 -0
  347. catalystwan/models/policy/{definitions → definition}/qos_map.py +39 -32
  348. catalystwan/models/policy/{definitions → definition}/rewrite.py +12 -2
  349. catalystwan/models/policy/definition/route_policy.py +187 -0
  350. catalystwan/models/policy/{definitions → definition}/rule_set.py +66 -48
  351. catalystwan/models/policy/{definitions → definition}/security_group.py +38 -14
  352. catalystwan/models/policy/definition/srst_phone_profile.py +37 -0
  353. catalystwan/models/policy/definition/ssl_decryption.py +209 -0
  354. catalystwan/models/policy/definition/ssl_decryption_utd_profile.py +87 -0
  355. catalystwan/models/policy/{definitions → definition}/traffic_data.py +184 -61
  356. catalystwan/models/policy/definition/url_filtering.py +70 -0
  357. catalystwan/models/policy/{definitions → definition}/vpn_membership.py +13 -1
  358. catalystwan/models/policy/definition/vpn_qos_map.py +46 -0
  359. catalystwan/models/policy/{definitions → definition}/zone_based_firewall.py +93 -32
  360. catalystwan/models/policy/list/app.py +44 -0
  361. catalystwan/models/policy/list/app_probe.py +42 -0
  362. catalystwan/models/policy/list/as_path.py +30 -0
  363. catalystwan/models/policy/list/class_map.py +30 -0
  364. catalystwan/models/policy/list/color.py +28 -0
  365. catalystwan/models/policy/list/communities.py +83 -0
  366. catalystwan/models/policy/list/data_ipv6_prefix.py +30 -0
  367. catalystwan/models/policy/list/data_prefix.py +30 -0
  368. catalystwan/models/policy/list/fax_protocol.py +45 -0
  369. catalystwan/models/policy/list/fqdn.py +24 -0
  370. catalystwan/models/policy/list/geo_location.py +33 -0
  371. catalystwan/models/policy/list/identity.py +29 -0
  372. catalystwan/models/policy/list/ips_signature.py +27 -0
  373. catalystwan/models/policy/list/ipv6_prefix.py +33 -0
  374. catalystwan/models/policy/list/local_app.py +45 -0
  375. catalystwan/models/policy/list/local_domain.py +36 -0
  376. catalystwan/models/policy/list/media_profile.py +44 -0
  377. catalystwan/models/policy/list/mirror.py +27 -0
  378. catalystwan/models/policy/list/modem_pass_through.py +27 -0
  379. catalystwan/models/policy/list/policer.py +39 -0
  380. catalystwan/models/policy/list/port.py +33 -0
  381. catalystwan/models/policy/list/preferred_color_group.py +82 -0
  382. catalystwan/models/policy/list/prefix.py +33 -0
  383. catalystwan/models/policy/list/protocol_name.py +26 -0
  384. catalystwan/models/policy/list/region.py +45 -0
  385. catalystwan/models/policy/list/scalable_group_tag.py +30 -0
  386. catalystwan/models/policy/list/site.py +34 -0
  387. catalystwan/models/policy/list/sla.py +77 -0
  388. catalystwan/models/policy/list/supervisory_disconnect.py +62 -0
  389. catalystwan/models/policy/list/threat_grid_api_key.py +32 -0
  390. catalystwan/models/policy/list/tloc.py +32 -0
  391. catalystwan/models/policy/list/translation_profile.py +32 -0
  392. catalystwan/models/policy/list/translation_rules.py +29 -0
  393. catalystwan/models/policy/list/trunkgroup.py +56 -0
  394. catalystwan/models/policy/list/umbrella_data.py +30 -0
  395. catalystwan/models/policy/list/url.py +39 -0
  396. catalystwan/models/policy/list/vpn.py +40 -0
  397. catalystwan/models/policy/list/zone.py +46 -0
  398. catalystwan/models/policy/localized.py +34 -16
  399. catalystwan/models/policy/policy.py +13 -9
  400. catalystwan/models/policy/policy_definition.py +673 -173
  401. catalystwan/models/policy/policy_list.py +38 -27
  402. catalystwan/models/policy/security.py +145 -46
  403. catalystwan/models/policy/voice.py +77 -0
  404. catalystwan/models/settings.py +41 -0
  405. catalystwan/models/templates.py +79 -0
  406. catalystwan/response.py +6 -2
  407. catalystwan/session.py +1 -1
  408. catalystwan/tests/builders/test_report.py +60 -0
  409. catalystwan/tests/builders/uc_voice.py +85 -0
  410. catalystwan/tests/models/__init__.py +0 -0
  411. catalystwan/tests/models/test_digital_interface.py +56 -0
  412. catalystwan/tests/templates/definitions/aaa_basic.json +96 -0
  413. catalystwan/tests/templates/definitions/aaa_complex.json +464 -0
  414. catalystwan/tests/templates/definitions/{iuo.json → cisco_aaa.json} +44 -15
  415. catalystwan/tests/templates/definitions/cisco_aaa_complex.json +361 -0
  416. catalystwan/tests/templates/definitions/cisco_logging_complex.json +268 -0
  417. catalystwan/tests/templates/definitions/cisco_ntp_complex.json +143 -0
  418. catalystwan/tests/templates/definitions/cisco_omp_complex.json +175 -0
  419. catalystwan/tests/templates/definitions/cisco_ospf_complex.json +302 -0
  420. catalystwan/tests/templates/definitions/cisco_sig.json +405 -0
  421. catalystwan/tests/templates/definitions/cisco_snmp_complex.json +258 -0
  422. catalystwan/tests/templates/definitions/cisco_system_complex.json +502 -0
  423. catalystwan/tests/templates/definitions/{Basic_Cisco_VPN_Model.json → cisco_vpn_basic.json} +2 -2
  424. catalystwan/tests/templates/definitions/{complex_cisco_vpn.json → cisco_vpn_complex.json} +27 -12
  425. catalystwan/tests/templates/definitions/cisco_vpn_interface_complex.json +821 -0
  426. catalystwan/tests/templates/definitions/omp_vsmart_1.json +26 -0
  427. catalystwan/tests/templates/definitions/{omp_2.json → omp_vsmart_2.json} +16 -2
  428. catalystwan/tests/templates/definitions/{omp_3.json → omp_vsmart_3.json} +16 -2
  429. catalystwan/tests/templates/definitions/omp_vsmart_complex.json +73 -0
  430. catalystwan/tests/templates/definitions/security_vsmart_complex.json +24 -0
  431. catalystwan/tests/templates/definitions/system_vsmart_complex.json +193 -0
  432. catalystwan/tests/templates/definitions/vpn_vsmart_basic.json +17 -0
  433. catalystwan/tests/templates/definitions/vpn_vsmart_complex.json +179 -0
  434. catalystwan/tests/templates/definitions/vpn_vsmart_interface_basic.json +42 -0
  435. catalystwan/tests/templates/definitions/vpn_vsmart_interface_complex.json +208 -0
  436. catalystwan/tests/templates/models/__init__.py +46 -13
  437. catalystwan/tests/templates/models/aaa.py +106 -0
  438. catalystwan/tests/templates/models/cisco_aaa.py +81 -48
  439. catalystwan/tests/templates/models/cisco_banner.py +2 -2
  440. catalystwan/tests/templates/models/cisco_bfd.py +4 -6
  441. catalystwan/tests/templates/models/cisco_logging.py +65 -0
  442. catalystwan/tests/templates/models/cisco_ntp.py +17 -0
  443. catalystwan/tests/templates/models/cisco_omp.py +37 -0
  444. catalystwan/tests/templates/models/cisco_ospf.py +60 -0
  445. catalystwan/tests/templates/models/cisco_secure_internet_gateway.py +95 -0
  446. catalystwan/tests/templates/models/cisco_snmp.py +40 -0
  447. catalystwan/tests/templates/models/cisco_system.py +108 -3
  448. catalystwan/tests/templates/models/cisco_vpn.py +42 -72
  449. catalystwan/tests/templates/models/cisco_vpn_interface.py +200 -0
  450. catalystwan/tests/templates/models/omp_vsmart.py +28 -8
  451. catalystwan/tests/templates/models/security_vsmart.py +11 -0
  452. catalystwan/tests/templates/models/system_vsmart.py +37 -0
  453. catalystwan/tests/templates/models/vpn_vsmart.py +32 -0
  454. catalystwan/tests/templates/models/vpn_vsmart_interface.py +54 -0
  455. catalystwan/tests/templates/schemas/aaa.json +1096 -0
  456. catalystwan/tests/templates/schemas/cedge_aaa.json +1 -1
  457. catalystwan/tests/templates/schemas/cisco_logging.json +577 -0
  458. catalystwan/tests/templates/schemas/cisco_ntp.json +265 -0
  459. catalystwan/tests/templates/schemas/cisco_omp.json +479 -0
  460. catalystwan/tests/templates/schemas/cisco_ospf.json +908 -0
  461. catalystwan/tests/templates/schemas/cisco_secure_internet_gateway.json +1520 -0
  462. catalystwan/tests/templates/schemas/cisco_snmp.json +561 -0
  463. catalystwan/tests/templates/schemas/cisco_system.json +242 -0
  464. catalystwan/tests/templates/schemas/cisco_vpn.json +53 -1
  465. catalystwan/tests/templates/schemas/cisco_vpn_interface.json +3348 -0
  466. catalystwan/tests/templates/schemas/omp-vsmart.json +20 -0
  467. catalystwan/tests/templates/schemas/security-vsmart.json +58 -0
  468. catalystwan/tests/templates/schemas/system-vsmart.json +2585 -0
  469. catalystwan/tests/templates/schemas/vpn-vsmart-interface.json +859 -0
  470. catalystwan/tests/templates/schemas/vpn-vsmart.json +445 -0
  471. catalystwan/tests/templates/test_chose_model.py +6 -10
  472. catalystwan/tests/templates/test_deserialize_model.py +4 -4
  473. catalystwan/tests/templates/test_find_template_values.py +229 -0
  474. catalystwan/tests/templates/test_find_template_values_2.py +193 -0
  475. catalystwan/tests/templates/test_serialize_model.py +1 -2
  476. catalystwan/tests/test_cli_template.py +8 -9
  477. catalystwan/tests/test_endpoints.py +42 -11
  478. catalystwan/tests/test_feature_profile_api.py +282 -0
  479. catalystwan/tests/test_models_common.py +53 -0
  480. catalystwan/tests/test_templates.py +16 -19
  481. catalystwan/utils/feature_template/find_template_values.py +17 -4
  482. catalystwan/utils/model.py +45 -0
  483. catalystwan/utils/persona.py +5 -0
  484. catalystwan/utils/type_check.py +22 -0
  485. catalystwan/workflows/backup_restore_device_templates.py +467 -0
  486. catalystwan/workflows/tenant_migration.py +1 -1
  487. {catalystwan-0.41.2.dist-info → catalystwan-0.41.2.dev0.dist-info}/METADATA +20 -1
  488. catalystwan-0.41.2.dev0.dist-info/RECORD +636 -0
  489. catalystwan/ENDPOINTS.md +0 -611
  490. catalystwan/api/configuration_groups/parcels/cellular_controller.py +0 -33
  491. catalystwan/api/templates/device_template/device_template_payload.json.j2 +0 -19
  492. catalystwan/models/configuration/config_migration.py +0 -36
  493. catalystwan/models/configuration/feature_profile/sdwan/management/vpn.py +0 -26
  494. catalystwan/models/configuration/feature_profile/sdwan/service/acl.py +0 -409
  495. catalystwan/models/configuration/feature_profile/sdwan/service/bgp.py +0 -288
  496. catalystwan/models/policy/lists.py +0 -330
  497. catalystwan/models/policy/lists_entries.py +0 -444
  498. catalystwan/tests/templates/definitions/complex_aaa.json +0 -277
  499. catalystwan/tests/templates/definitions/omp_1.json +0 -11
  500. catalystwan/utils/timezone.py +0 -422
  501. catalystwan-0.41.2.dist-info/RECORD +0 -353
  502. /catalystwan/tests/templates/definitions/{banner_1.json → cisco_banner.json} +0 -0
  503. {catalystwan-0.41.2.dist-info → catalystwan-0.41.2.dev0.dist-info}/LICENSE +0 -0
  504. {catalystwan-0.41.2.dist-info → catalystwan-0.41.2.dev0.dist-info}/WHEEL +0 -0
@@ -2,113 +2,85 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import TYPE_CHECKING, Any, Dict, List, Mapping, Optional, Type, overload
5
+ from typing import TYPE_CHECKING, Any, Dict, List, Mapping, Optional, Tuple, Type, overload
6
6
  from uuid import UUID
7
7
 
8
+ from pydantic import ValidationError
9
+
8
10
  from catalystwan.api.task_status_api import Task
9
- from catalystwan.endpoints.configuration.policy.definition.access_control_list import (
10
- AclPolicyGetResponse,
11
- ConfigurationPolicyAclDefinition,
12
- )
11
+ from catalystwan.endpoints.configuration.policy.abstractions import PolicyDefinitionEndpoints, PolicyListEndpoints
12
+ from catalystwan.endpoints.configuration.policy.definition.access_control_list import ConfigurationPolicyAclDefinition
13
13
  from catalystwan.endpoints.configuration.policy.definition.access_control_list_ipv6 import (
14
- AclIPv6PolicyGetResponse,
15
14
  ConfigurationPolicyAclIPv6Definition,
16
15
  )
17
- from catalystwan.endpoints.configuration.policy.definition.control import (
18
- ConfigurationPolicyControlDefinition,
19
- ControlPolicyGetResponse,
20
- )
16
+ from catalystwan.endpoints.configuration.policy.definition.aip import ConfigurationPolicyAIPDefinition
17
+ from catalystwan.endpoints.configuration.policy.definition.amp import ConfigurationPolicyAMPDefinition
18
+ from catalystwan.endpoints.configuration.policy.definition.app_route import ConfigurationPolicyAppRouteDefinition
19
+ from catalystwan.endpoints.configuration.policy.definition.cflowd import ConfigurationPolicyCflowdDefinition
20
+ from catalystwan.endpoints.configuration.policy.definition.control import ConfigurationPolicyControlDefinition
21
21
  from catalystwan.endpoints.configuration.policy.definition.device_access import (
22
22
  ConfigurationPolicyDeviceAccessDefinition,
23
- DeviceAccessPolicyGetResponse,
24
23
  )
25
24
  from catalystwan.endpoints.configuration.policy.definition.device_access_ipv6 import (
26
25
  ConfigurationPolicyDeviceAccessIPv6Definition,
27
- DeviceAccessIPv6PolicyGetResponse,
28
- )
29
- from catalystwan.endpoints.configuration.policy.definition.hub_and_spoke import (
30
- ConfigurationPolicyHubAndSpokeDefinition,
31
- HubAndSpokePolicyGetResponse,
32
- )
33
- from catalystwan.endpoints.configuration.policy.definition.mesh import (
34
- ConfigurationPolicyMeshDefinition,
35
- MeshPolicyGetResponse,
36
- )
37
- from catalystwan.endpoints.configuration.policy.definition.qos_map import (
38
- ConfigurationPolicyQoSMapDefinition,
39
- QoSMapPolicyGetResponse,
40
- )
41
- from catalystwan.endpoints.configuration.policy.definition.rewrite import (
42
- ConfigurationPolicyRewriteRuleDefinition,
43
- RewritePolicyGetResponse,
44
26
  )
45
- from catalystwan.endpoints.configuration.policy.definition.rule_set import (
46
- ConfigurationPolicyRuleSetDefinition,
47
- RuleSetGetResponse,
27
+ from catalystwan.endpoints.configuration.policy.definition.dial_peer import ConfigurationPolicyDialPeerDefinition
28
+ from catalystwan.endpoints.configuration.policy.definition.dns_security import ConfigurationPolicyDnsSecurityDefinition
29
+ from catalystwan.endpoints.configuration.policy.definition.fxo_port import ConfigurationPolicyFxoPortDefinition
30
+ from catalystwan.endpoints.configuration.policy.definition.fxs_did_port import ConfigurationPolicyFxsDidPortDefinition
31
+ from catalystwan.endpoints.configuration.policy.definition.fxs_port import ConfigurationPolicyFxsPortDefinition
32
+ from catalystwan.endpoints.configuration.policy.definition.hub_and_spoke import ConfigurationPolicyHubAndSpokeDefinition
33
+ from catalystwan.endpoints.configuration.policy.definition.intrusion_prevention import (
34
+ ConfigurationPolicyIntrusionPreventionDefinition,
48
35
  )
36
+ from catalystwan.endpoints.configuration.policy.definition.mesh import ConfigurationPolicyMeshDefinition
37
+ from catalystwan.endpoints.configuration.policy.definition.pri_isdn_port import ConfigurationPolicyPriIsdnPortDefinition
38
+ from catalystwan.endpoints.configuration.policy.definition.qos_map import ConfigurationPolicyQoSMapDefinition
39
+ from catalystwan.endpoints.configuration.policy.definition.rewrite import ConfigurationPolicyRewriteRuleDefinition
40
+ from catalystwan.endpoints.configuration.policy.definition.route_policy import ConfigurationPolicyRouteDefinition
41
+ from catalystwan.endpoints.configuration.policy.definition.rule_set import ConfigurationPolicyRuleSetDefinition
49
42
  from catalystwan.endpoints.configuration.policy.definition.security_group import (
50
43
  ConfigurationPolicySecurityGroupDefinition,
51
- SecurityGroupGetResponse,
52
44
  )
53
- from catalystwan.endpoints.configuration.policy.definition.traffic_data import (
54
- ConfigurationPolicyDataDefinition,
55
- TrafficDataPolicy,
56
- TrafficDataPolicyGetResponse,
45
+ from catalystwan.endpoints.configuration.policy.definition.srst_phone_profile import (
46
+ ConfigurationPolicySrstPhoneProfileDefinition,
47
+ )
48
+ from catalystwan.endpoints.configuration.policy.definition.ssl_decryption import ConfigurationSslDecryptionDefinition
49
+ from catalystwan.endpoints.configuration.policy.definition.ssl_decryption_utd_profile import (
50
+ ConfigurationSslDecryptionUtdProfileDefinition,
51
+ )
52
+ from catalystwan.endpoints.configuration.policy.definition.traffic_data import ConfigurationPolicyDataDefinition
53
+ from catalystwan.endpoints.configuration.policy.definition.url_filtering import (
54
+ ConfigurationPolicyUrlFilteringDefinition,
57
55
  )
58
56
  from catalystwan.endpoints.configuration.policy.definition.vpn_membership import (
59
57
  ConfigurationPolicyVPNMembershipGroupDefinition,
60
- VPNMembershipPolicyGetResponse,
61
58
  )
59
+ from catalystwan.endpoints.configuration.policy.definition.vpn_qos_map import ConfigurationPolicyVPNQoSMapDefinition
62
60
  from catalystwan.endpoints.configuration.policy.definition.zone_based_firewall import (
63
61
  ConfigurationPolicyZoneBasedFirewallDefinition,
64
- ZoneBasedFWPolicyGetResponse,
65
62
  )
66
63
  from catalystwan.endpoints.configuration.policy.list.app import AppListInfo, ConfigurationPolicyApplicationList
67
- from catalystwan.endpoints.configuration.policy.list.app_probe import (
68
- AppProbeClassListInfo,
69
- ConfigurationPolicyAppProbeClassList,
70
- )
64
+ from catalystwan.endpoints.configuration.policy.list.app_probe import ConfigurationPolicyAppProbeClassList
71
65
  from catalystwan.endpoints.configuration.policy.list.as_path import ASPathListInfo, ConfigurationPolicyASPathList
72
- from catalystwan.endpoints.configuration.policy.list.class_map import (
73
- ClassMapListInfo,
74
- ConfigurationPolicyForwardingClassList,
75
- )
66
+ from catalystwan.endpoints.configuration.policy.list.class_map import ConfigurationPolicyForwardingClassList
76
67
  from catalystwan.endpoints.configuration.policy.list.color import ColorListInfo, ConfigurationPolicyColorList
77
- from catalystwan.endpoints.configuration.policy.list.community import (
78
- CommunityListInfo,
79
- ConfigurationPolicyCommunityList,
80
- )
81
- from catalystwan.endpoints.configuration.policy.list.data_ipv6_prefix import (
82
- ConfigurationPolicyDataIPv6PrefixList,
83
- DataIPv6PrefixListInfo,
84
- )
85
- from catalystwan.endpoints.configuration.policy.list.data_prefix import (
86
- ConfigurationPolicyDataPrefixList,
87
- DataPrefixListInfo,
88
- )
89
- from catalystwan.endpoints.configuration.policy.list.expanded_community import (
90
- ConfigurationPolicyExpandedCommunityList,
91
- ExpandedCommunityListInfo,
92
- )
68
+ from catalystwan.endpoints.configuration.policy.list.community import ConfigurationPolicyCommunityList
69
+ from catalystwan.endpoints.configuration.policy.list.data_ipv6_prefix import ConfigurationPolicyDataIPv6PrefixList
70
+ from catalystwan.endpoints.configuration.policy.list.data_prefix import ConfigurationPolicyDataPrefixList
71
+ from catalystwan.endpoints.configuration.policy.list.expanded_community import ConfigurationPolicyExpandedCommunityList
72
+ from catalystwan.endpoints.configuration.policy.list.extended_community import ConfigurationPolicyExtendedCommunityList
73
+ from catalystwan.endpoints.configuration.policy.list.fax_protocol import ConfigurationPolicyFaxProtocolList
93
74
  from catalystwan.endpoints.configuration.policy.list.fqdn import ConfigurationPolicyFQDNList, FQDNListInfo
94
- from catalystwan.endpoints.configuration.policy.list.geo_location import (
95
- ConfigurationPolicyGeoLocationList,
96
- GeoLocationListInfo,
97
- )
98
- from catalystwan.endpoints.configuration.policy.list.ips_signature import (
99
- ConfigurationPolicyIPSSignatureList,
100
- IPSSignatureListInfo,
101
- )
102
- from catalystwan.endpoints.configuration.policy.list.ipv6_prefix import (
103
- ConfigurationPolicyIPv6PrefixList,
104
- IPv6PrefixListInfo,
105
- )
75
+ from catalystwan.endpoints.configuration.policy.list.geo_location import ConfigurationPolicyGeoLocationList
76
+ from catalystwan.endpoints.configuration.policy.list.identity import ConfigurationPolicyIdentityList
77
+ from catalystwan.endpoints.configuration.policy.list.ips_signature import ConfigurationPolicyIPSSignatureList
78
+ from catalystwan.endpoints.configuration.policy.list.ipv6_prefix import ConfigurationPolicyIPv6PrefixList
106
79
  from catalystwan.endpoints.configuration.policy.list.local_app import ConfigurationPolicyLocalAppList, LocalAppListInfo
107
- from catalystwan.endpoints.configuration.policy.list.local_domain import (
108
- ConfigurationPolicyLocalDomainList,
109
- LocalDomainListInfo,
110
- )
80
+ from catalystwan.endpoints.configuration.policy.list.local_domain import ConfigurationPolicyLocalDomainList
81
+ from catalystwan.endpoints.configuration.policy.list.media_profile import ConfigurationPolicyMediaProfileList
111
82
  from catalystwan.endpoints.configuration.policy.list.mirror import ConfigurationPolicyMirrorList, MirrorListInfo
83
+ from catalystwan.endpoints.configuration.policy.list.modem_pass_through import ConfigurationPolicyModemPassThroughList
112
84
  from catalystwan.endpoints.configuration.policy.list.policer import ConfigurationPolicyPolicerClassList, PolicerListInfo
113
85
  from catalystwan.endpoints.configuration.policy.list.port import ConfigurationPolicyPortList, PortListInfo
114
86
  from catalystwan.endpoints.configuration.policy.list.preferred_color_group import (
@@ -121,9 +93,20 @@ from catalystwan.endpoints.configuration.policy.list.protocol_name import (
121
93
  ProtocolNameListInfo,
122
94
  )
123
95
  from catalystwan.endpoints.configuration.policy.list.region import ConfigurationPolicyRegionList, RegionListInfo
96
+ from catalystwan.endpoints.configuration.policy.list.scalable_group_tag import ConfigurationPolicyScalableGroupTagList
124
97
  from catalystwan.endpoints.configuration.policy.list.site import ConfigurationPolicySiteList, SiteListInfo
125
98
  from catalystwan.endpoints.configuration.policy.list.sla import ConfigurationPolicySLAClassList, SLAClassListInfo
99
+ from catalystwan.endpoints.configuration.policy.list.supervisory_disconnect import (
100
+ ConfigurationPolicySupervisoryDisconnectList,
101
+ )
102
+ from catalystwan.endpoints.configuration.policy.list.threat_grid_api_key import ConfigurationPolicyThreatGridApiKeyList
126
103
  from catalystwan.endpoints.configuration.policy.list.tloc import ConfigurationPolicyTLOCList, TLOCListInfo
104
+ from catalystwan.endpoints.configuration.policy.list.translation_profile import (
105
+ ConfigurationPolicyTranslationProfileList,
106
+ )
107
+ from catalystwan.endpoints.configuration.policy.list.translation_rules import ConfigurationPolicyTranslationRulesList
108
+ from catalystwan.endpoints.configuration.policy.list.trunkgroup import ConfigurationPolicyTrunkGroupList
109
+ from catalystwan.endpoints.configuration.policy.list.umbrella_data import ConfigurationPolicyUmbrellaDataList
127
110
  from catalystwan.endpoints.configuration.policy.list.url_allow_list import (
128
111
  ConfigurationPolicyURLAllowList,
129
112
  URLAllowListInfo,
@@ -136,27 +119,15 @@ from catalystwan.endpoints.configuration.policy.list.vpn import ConfigurationPol
136
119
  from catalystwan.endpoints.configuration.policy.list.zone import ConfigurationPolicyZoneList, ZoneListInfo
137
120
  from catalystwan.endpoints.configuration.policy.security_template import ConfigurationSecurityTemplatePolicy
138
121
  from catalystwan.endpoints.configuration.policy.vedge_template import ConfigurationVEdgeTemplatePolicy
122
+ from catalystwan.endpoints.configuration.policy.voice_template import ConfigurationVoiceTemplatePolicy
139
123
  from catalystwan.endpoints.configuration.policy.vsmart_template import (
140
124
  ConfigurationVSmartTemplatePolicy,
141
125
  VSmartConnectivityStatus,
142
126
  )
143
127
  from catalystwan.models.misc.application_protocols import ApplicationProtocol
144
- from catalystwan.models.policy import AnyPolicyDefinition, AnyPolicyList
145
- from catalystwan.models.policy.centralized import CentralizedPolicy, CentralizedPolicyEditPayload, CentralizedPolicyInfo
146
- from catalystwan.models.policy.definitions.access_control_list import AclPolicy
147
- from catalystwan.models.policy.definitions.access_control_list_ipv6 import AclIPv6Policy
148
- from catalystwan.models.policy.definitions.control import ControlPolicy
149
- from catalystwan.models.policy.definitions.device_access import DeviceAccessPolicy
150
- from catalystwan.models.policy.definitions.device_access_ipv6 import DeviceAccessIPv6Policy
151
- from catalystwan.models.policy.definitions.hub_and_spoke import HubAndSpokePolicy
152
- from catalystwan.models.policy.definitions.mesh import MeshPolicy
153
- from catalystwan.models.policy.definitions.qos_map import QoSMapPolicy
154
- from catalystwan.models.policy.definitions.rewrite import RewritePolicy
155
- from catalystwan.models.policy.definitions.rule_set import RuleSet
156
- from catalystwan.models.policy.definitions.security_group import SecurityGroup
157
- from catalystwan.models.policy.definitions.vpn_membership import VPNMembershipPolicy
158
- from catalystwan.models.policy.definitions.zone_based_firewall import ZoneBasedFWPolicy
159
- from catalystwan.models.policy.lists import (
128
+ from catalystwan.models.policy import (
129
+ AnyPolicyDefinition,
130
+ AnyPolicyList,
160
131
  AppList,
161
132
  AppProbeClassList,
162
133
  ASPathList,
@@ -166,6 +137,7 @@ from catalystwan.models.policy.lists import (
166
137
  DataIPv6PrefixList,
167
138
  DataPrefixList,
168
139
  ExpandedCommunityList,
140
+ ExtendedCommunityList,
169
141
  FQDNList,
170
142
  GeoLocationList,
171
143
  IPSSignatureList,
@@ -174,7 +146,6 @@ from catalystwan.models.policy.lists import (
174
146
  LocalDomainList,
175
147
  MirrorList,
176
148
  PolicerList,
177
- PolicyListBase,
178
149
  PortList,
179
150
  PreferredColorGroupList,
180
151
  PrefixList,
@@ -188,6 +159,83 @@ from catalystwan.models.policy.lists import (
188
159
  VPNList,
189
160
  ZoneList,
190
161
  )
162
+ from catalystwan.models.policy.centralized import CentralizedPolicy, CentralizedPolicyEditPayload, CentralizedPolicyInfo
163
+ from catalystwan.models.policy.definition.access_control_list import AclPolicy, AclPolicyGetResponse
164
+ from catalystwan.models.policy.definition.access_control_list_ipv6 import AclIPv6Policy, AclIPv6PolicyGetResponse
165
+ from catalystwan.models.policy.definition.aip import (
166
+ AdvancedInspectionProfilePolicy,
167
+ AdvancedInspectionProfilePolicyGetResponse,
168
+ )
169
+ from catalystwan.models.policy.definition.amp import (
170
+ AdvancedMalwareProtectionPolicy,
171
+ AdvancedMalwareProtectionPolicyGetResponse,
172
+ )
173
+ from catalystwan.models.policy.definition.app_route import AppRoutePolicy, AppRoutePolicyGetResponse
174
+ from catalystwan.models.policy.definition.cflowd import CflowdPolicy, CflowdPolicyGetResponse
175
+ from catalystwan.models.policy.definition.control import ControlPolicy, ControlPolicyGetResponse
176
+ from catalystwan.models.policy.definition.device_access import DeviceAccessPolicy, DeviceAccessPolicyGetResponse
177
+ from catalystwan.models.policy.definition.device_access_ipv6 import (
178
+ DeviceAccessIPv6Policy,
179
+ DeviceAccessIPv6PolicyGetResponse,
180
+ )
181
+ from catalystwan.models.policy.definition.dial_peer import DialPeerPolicy, DialPeerPolicyGetResponse
182
+ from catalystwan.models.policy.definition.dns_security import DnsSecurityPolicy, DnsSecurityPolicyGetResponse
183
+ from catalystwan.models.policy.definition.fxo_port import FxoPortPolicy, FxoPortPolicyGetResponse
184
+ from catalystwan.models.policy.definition.fxs_did_port import FxsDidPortPolicy, FxsDidPortPolicyGetResponse
185
+ from catalystwan.models.policy.definition.fxs_port import FxsPortPolicy, FxsPortPolicyGetResponse
186
+ from catalystwan.models.policy.definition.hub_and_spoke import HubAndSpokePolicy, HubAndSpokePolicyGetResponse
187
+ from catalystwan.models.policy.definition.intrusion_prevention import (
188
+ IntrusionPreventionPolicy,
189
+ IntrusionPreventionPolicyGetResponse,
190
+ )
191
+ from catalystwan.models.policy.definition.mesh import MeshPolicy, MeshPolicyGetResponse
192
+ from catalystwan.models.policy.definition.pri_isdn_port import PriIsdnPortPolicy, PriIsdnPortPolicyGetResponse
193
+ from catalystwan.models.policy.definition.qos_map import QoSMapPolicy, QoSMapPolicyGetResponse
194
+ from catalystwan.models.policy.definition.rewrite import RewritePolicy, RewritePolicyGetResponse
195
+ from catalystwan.models.policy.definition.route_policy import RoutePolicy, RoutePolicyGetResponse
196
+ from catalystwan.models.policy.definition.rule_set import RuleSet, RuleSetGetResponse
197
+ from catalystwan.models.policy.definition.security_group import SecurityGroup, SecurityGroupGetResponse
198
+ from catalystwan.models.policy.definition.srst_phone_profile import (
199
+ SrstPhoneProfilePolicy,
200
+ SrstPhoneProfilePolicyGetResponse,
201
+ )
202
+ from catalystwan.models.policy.definition.ssl_decryption import SslDecryptionPolicy, SslDecryptionPolicyGetResponse
203
+ from catalystwan.models.policy.definition.ssl_decryption_utd_profile import (
204
+ SslDecryptionUtdProfilePolicy,
205
+ SslDecryptionUtdProfilePolicyGetResponse,
206
+ )
207
+ from catalystwan.models.policy.definition.traffic_data import TrafficDataPolicy, TrafficDataPolicyGetResponse
208
+ from catalystwan.models.policy.definition.url_filtering import UrlFilteringPolicy, UrlFilteringPolicyGetResponse
209
+ from catalystwan.models.policy.definition.vpn_membership import VPNMembershipPolicy, VPNMembershipPolicyGetResponse
210
+ from catalystwan.models.policy.definition.vpn_qos_map import VPNQoSMapPolicy
211
+ from catalystwan.models.policy.definition.zone_based_firewall import ZoneBasedFWPolicy, ZoneBasedFWPolicyGetResponse
212
+ from catalystwan.models.policy.list.app_probe import AppProbeClassListInfo
213
+ from catalystwan.models.policy.list.class_map import ClassMapListInfo
214
+ from catalystwan.models.policy.list.communities import (
215
+ CommunityListInfo,
216
+ ExpandedCommunityListInfo,
217
+ ExtendedCommunityListInfo,
218
+ )
219
+ from catalystwan.models.policy.list.data_ipv6_prefix import DataIPv6PrefixListInfo
220
+ from catalystwan.models.policy.list.data_prefix import DataPrefixListInfo
221
+ from catalystwan.models.policy.list.fax_protocol import FaxProtocolList, FaxProtocolListInfo
222
+ from catalystwan.models.policy.list.geo_location import GeoLocationListInfo
223
+ from catalystwan.models.policy.list.identity import IdentityList, IdentityListInfo
224
+ from catalystwan.models.policy.list.ips_signature import IPSSignatureListInfo
225
+ from catalystwan.models.policy.list.ipv6_prefix import IPv6PrefixListInfo
226
+ from catalystwan.models.policy.list.local_domain import LocalDomainListInfo
227
+ from catalystwan.models.policy.list.media_profile import MediaProfileList, MediaProfileListInfo
228
+ from catalystwan.models.policy.list.modem_pass_through import ModemPassThroughList, ModemPassThroughListInfo
229
+ from catalystwan.models.policy.list.scalable_group_tag import ScalableGroupTagList, ScalableGroupTagListInfo
230
+ from catalystwan.models.policy.list.supervisory_disconnect import (
231
+ SupervisoryDisconnectList,
232
+ SupervisoryDisconnectListInfo,
233
+ )
234
+ from catalystwan.models.policy.list.threat_grid_api_key import ThreatGridApiKeyList, ThreatGridApiKeyListInfo
235
+ from catalystwan.models.policy.list.translation_profile import TranslationProfileList, TranslationProfileListInfo
236
+ from catalystwan.models.policy.list.translation_rules import TranslationRulesList, TranslationRulesListInfo
237
+ from catalystwan.models.policy.list.trunkgroup import TrunkGroupList, TrunkGroupListInfo
238
+ from catalystwan.models.policy.list.umbrella_data import UmbrellaDataList, UmbrellaDataListInfo
191
239
  from catalystwan.models.policy.localized import (
192
240
  LocalizedPolicy,
193
241
  LocalizedPolicyDeviceInfo,
@@ -197,17 +245,17 @@ from catalystwan.models.policy.localized import (
197
245
  from catalystwan.models.policy.policy_definition import (
198
246
  PolicyDefinitionBase,
199
247
  PolicyDefinitionEditResponse,
200
- PolicyDefinitionEndpoints,
201
248
  PolicyDefinitionInfo,
202
249
  )
203
- from catalystwan.models.policy.policy_list import PolicyListEndpoints
250
+ from catalystwan.models.policy.policy_list import PolicyListBase
204
251
  from catalystwan.models.policy.security import (
205
252
  AnySecurityPolicy,
206
- AnySecurityPolicyInfo,
253
+ AnySecurityPolicyInfoList,
207
254
  SecurityPolicy,
208
255
  SecurityPolicyEditResponse,
209
256
  UnifiedSecurityPolicy,
210
257
  )
258
+ from catalystwan.models.policy.voice import VoicePolicy, VoicePolicyEditResponse, VoicePolicyInfo
211
259
  from catalystwan.typed_list import DataSequence
212
260
 
213
261
  if TYPE_CHECKING:
@@ -224,43 +272,72 @@ POLICY_LIST_ENDPOINTS_MAP: Mapping[type, type] = {
224
272
  DataIPv6PrefixList: ConfigurationPolicyDataIPv6PrefixList,
225
273
  DataPrefixList: ConfigurationPolicyDataPrefixList,
226
274
  ExpandedCommunityList: ConfigurationPolicyExpandedCommunityList,
275
+ ExtendedCommunityList: ConfigurationPolicyExtendedCommunityList,
276
+ FaxProtocolList: ConfigurationPolicyFaxProtocolList,
227
277
  FQDNList: ConfigurationPolicyFQDNList,
228
278
  GeoLocationList: ConfigurationPolicyGeoLocationList,
279
+ IdentityList: ConfigurationPolicyIdentityList,
229
280
  IPSSignatureList: ConfigurationPolicyIPSSignatureList,
230
281
  IPv6PrefixList: ConfigurationPolicyIPv6PrefixList,
231
282
  LocalAppList: ConfigurationPolicyLocalAppList,
232
283
  LocalDomainList: ConfigurationPolicyLocalDomainList,
284
+ MediaProfileList: ConfigurationPolicyMediaProfileList,
233
285
  MirrorList: ConfigurationPolicyMirrorList,
286
+ ModemPassThroughList: ConfigurationPolicyModemPassThroughList,
234
287
  PolicerList: ConfigurationPolicyPolicerClassList,
235
288
  PortList: ConfigurationPolicyPortList,
236
289
  PreferredColorGroupList: ConfigurationPreferredColorGroupList,
237
290
  PrefixList: ConfigurationPolicyPrefixList,
238
291
  ProtocolNameList: ConfigurationPolicyProtocolNameList,
239
292
  RegionList: ConfigurationPolicyRegionList,
293
+ ScalableGroupTagList: ConfigurationPolicyScalableGroupTagList,
240
294
  SiteList: ConfigurationPolicySiteList,
241
295
  SLAClassList: ConfigurationPolicySLAClassList,
296
+ SupervisoryDisconnectList: ConfigurationPolicySupervisoryDisconnectList,
297
+ ThreatGridApiKeyList: ConfigurationPolicyThreatGridApiKeyList,
242
298
  TLOCList: ConfigurationPolicyTLOCList,
243
- URLBlockList: ConfigurationPolicyURLBlockList,
299
+ TranslationProfileList: ConfigurationPolicyTranslationProfileList,
300
+ TranslationRulesList: ConfigurationPolicyTranslationRulesList,
301
+ TrunkGroupList: ConfigurationPolicyTrunkGroupList,
302
+ UmbrellaDataList: ConfigurationPolicyUmbrellaDataList,
244
303
  URLAllowList: ConfigurationPolicyURLAllowList,
304
+ URLBlockList: ConfigurationPolicyURLBlockList,
245
305
  VPNList: ConfigurationPolicyVPNList,
246
306
  ZoneList: ConfigurationPolicyZoneList,
247
307
  }
248
308
 
249
309
  POLICY_DEFINITION_ENDPOINTS_MAP: Mapping[type, type] = {
310
+ AclIPv6Policy: ConfigurationPolicyAclIPv6Definition,
311
+ AclPolicy: ConfigurationPolicyAclDefinition,
312
+ AdvancedInspectionProfilePolicy: ConfigurationPolicyAIPDefinition,
313
+ AdvancedMalwareProtectionPolicy: ConfigurationPolicyAMPDefinition,
314
+ AppRoutePolicy: ConfigurationPolicyAppRouteDefinition,
315
+ CflowdPolicy: ConfigurationPolicyCflowdDefinition,
316
+ ControlPolicy: ConfigurationPolicyControlDefinition,
317
+ DeviceAccessIPv6Policy: ConfigurationPolicyDeviceAccessIPv6Definition,
318
+ DeviceAccessPolicy: ConfigurationPolicyDeviceAccessDefinition,
319
+ DialPeerPolicy: ConfigurationPolicyDialPeerDefinition,
320
+ DnsSecurityPolicy: ConfigurationPolicyDnsSecurityDefinition,
321
+ FxoPortPolicy: ConfigurationPolicyFxoPortDefinition,
322
+ FxsPortPolicy: ConfigurationPolicyFxsPortDefinition,
323
+ FxsDidPortPolicy: ConfigurationPolicyFxsDidPortDefinition,
324
+ HubAndSpokePolicy: ConfigurationPolicyHubAndSpokeDefinition,
325
+ IntrusionPreventionPolicy: ConfigurationPolicyIntrusionPreventionDefinition,
326
+ MeshPolicy: ConfigurationPolicyMeshDefinition,
327
+ PriIsdnPortPolicy: ConfigurationPolicyPriIsdnPortDefinition,
328
+ QoSMapPolicy: ConfigurationPolicyQoSMapDefinition,
329
+ RewritePolicy: ConfigurationPolicyRewriteRuleDefinition,
330
+ RoutePolicy: ConfigurationPolicyRouteDefinition,
250
331
  RuleSet: ConfigurationPolicyRuleSetDefinition,
251
332
  SecurityGroup: ConfigurationPolicySecurityGroupDefinition,
252
- ZoneBasedFWPolicy: ConfigurationPolicyZoneBasedFirewallDefinition,
333
+ SslDecryptionPolicy: ConfigurationSslDecryptionDefinition,
334
+ SslDecryptionUtdProfilePolicy: ConfigurationSslDecryptionUtdProfileDefinition,
335
+ SrstPhoneProfilePolicy: ConfigurationPolicySrstPhoneProfileDefinition,
253
336
  TrafficDataPolicy: ConfigurationPolicyDataDefinition,
254
- QoSMapPolicy: ConfigurationPolicyQoSMapDefinition,
255
- RewritePolicy: ConfigurationPolicyRewriteRuleDefinition,
256
- ControlPolicy: ConfigurationPolicyControlDefinition,
337
+ UrlFilteringPolicy: ConfigurationPolicyUrlFilteringDefinition,
257
338
  VPNMembershipPolicy: ConfigurationPolicyVPNMembershipGroupDefinition,
258
- HubAndSpokePolicy: ConfigurationPolicyHubAndSpokeDefinition,
259
- MeshPolicy: ConfigurationPolicyMeshDefinition,
260
- AclPolicy: ConfigurationPolicyAclDefinition,
261
- AclIPv6Policy: ConfigurationPolicyAclIPv6Definition,
262
- DeviceAccessPolicy: ConfigurationPolicyDeviceAccessDefinition,
263
- DeviceAccessIPv6Policy: ConfigurationPolicyDeviceAccessIPv6Definition,
339
+ VPNQoSMapPolicy: ConfigurationPolicyVPNQoSMapDefinition,
340
+ ZoneBasedFWPolicy: ConfigurationPolicyZoneBasedFirewallDefinition,
264
341
  }
265
342
 
266
343
 
@@ -350,9 +427,9 @@ class SecurityPolicyAPI:
350
427
  # POST does not return anything! we need to list all after creation and find by name to get id
351
428
  self._endpoints.create_security_template(policy)
352
429
  policy_infos = [
353
- info.root
354
- for info in self._endpoints.generate_security_template_list()
355
- if info.root.policy_name == policy.policy_name
430
+ info
431
+ for info in self._endpoints.generate_security_template_list().root
432
+ if info.policy_name == policy.policy_name
356
433
  ]
357
434
  assert len(policy_infos) == 1
358
435
  return policy_infos[0].policy_id
@@ -364,7 +441,7 @@ class SecurityPolicyAPI:
364
441
  self._endpoints.delete_security_template(id)
365
442
 
366
443
  @overload
367
- def get(self) -> List[AnySecurityPolicyInfo]:
444
+ def get(self) -> AnySecurityPolicyInfoList:
368
445
  ...
369
446
 
370
447
  @overload
@@ -374,7 +451,35 @@ class SecurityPolicyAPI:
374
451
  def get(self, id: Optional[UUID] = None) -> Any:
375
452
  if id is not None:
376
453
  return self._endpoints.get_security_template(id).root
377
- return [info.root for info in self._endpoints.generate_security_template_list()]
454
+ return self._endpoints.generate_security_template_list()
455
+
456
+
457
+ class VoicePolicyAPI:
458
+ def __init__(self, session: ManagerSession):
459
+ self._session = session
460
+ self._endpoints = ConfigurationVoiceTemplatePolicy(session)
461
+
462
+ def create(self, policy: VoicePolicy) -> None:
463
+ self._endpoints.create_voice_template(policy)
464
+
465
+ def edit(self, id: UUID, policy: VoicePolicy) -> VoicePolicyEditResponse:
466
+ return self._endpoints.edit_voice_template(id, policy)
467
+
468
+ def delete(self, id: UUID) -> None:
469
+ self._endpoints.delete_voice_template(id)
470
+
471
+ @overload
472
+ def get(self) -> DataSequence[VoicePolicyInfo]:
473
+ ...
474
+
475
+ @overload
476
+ def get(self, id: UUID) -> VoicePolicy:
477
+ ...
478
+
479
+ def get(self, id: Optional[UUID] = None) -> Any:
480
+ if id is not None:
481
+ return self._endpoints.get_voice_template(id)
482
+ return self._endpoints.generate_voice_template_list()
378
483
 
379
484
 
380
485
  class PolicyListsAPI:
@@ -435,6 +540,14 @@ class PolicyListsAPI:
435
540
  def get(self, type: Type[ExpandedCommunityList]) -> DataSequence[ExpandedCommunityListInfo]:
436
541
  ...
437
542
 
543
+ @overload
544
+ def get(self, type: Type[ExtendedCommunityList]) -> DataSequence[ExtendedCommunityListInfo]:
545
+ ...
546
+
547
+ @overload
548
+ def get(self, type: Type[FaxProtocolList]) -> DataSequence[FaxProtocolListInfo]:
549
+ ...
550
+
438
551
  @overload
439
552
  def get(self, type: Type[FQDNList]) -> DataSequence[FQDNListInfo]:
440
553
  ...
@@ -459,6 +572,14 @@ class PolicyListsAPI:
459
572
  def get(self, type: Type[LocalDomainList]) -> DataSequence[LocalDomainListInfo]:
460
573
  ...
461
574
 
575
+ @overload
576
+ def get(self, type: Type[MediaProfileList]) -> DataSequence[MediaProfileListInfo]:
577
+ ...
578
+
579
+ @overload
580
+ def get(self, type: Type[ModemPassThroughList]) -> DataSequence[ModemPassThroughListInfo]:
581
+ ...
582
+
462
583
  @overload
463
584
  def get(self, type: Type[MirrorList]) -> DataSequence[MirrorListInfo]:
464
585
  ...
@@ -495,10 +616,34 @@ class PolicyListsAPI:
495
616
  def get(self, type: Type[SLAClassList]) -> DataSequence[SLAClassListInfo]:
496
617
  ...
497
618
 
619
+ @overload
620
+ def get(self, type: Type[SupervisoryDisconnectList]) -> DataSequence[SupervisoryDisconnectListInfo]:
621
+ ...
622
+
623
+ @overload
624
+ def get(self, type: Type[ThreatGridApiKeyList]) -> DataSequence[ThreatGridApiKeyListInfo]:
625
+ ...
626
+
498
627
  @overload
499
628
  def get(self, type: Type[TLOCList]) -> DataSequence[TLOCListInfo]:
500
629
  ...
501
630
 
631
+ @overload
632
+ def get(self, type: Type[TranslationProfileList]) -> DataSequence[TranslationProfileListInfo]:
633
+ ...
634
+
635
+ @overload
636
+ def get(self, type: Type[TranslationRulesList]) -> DataSequence[TranslationRulesListInfo]:
637
+ ...
638
+
639
+ @overload
640
+ def get(self, type: Type[TrunkGroupList]) -> DataSequence[TrunkGroupListInfo]:
641
+ ...
642
+
643
+ @overload
644
+ def get(self, type: Type[UmbrellaDataList]) -> DataSequence[UmbrellaDataListInfo]:
645
+ ...
646
+
502
647
  @overload
503
648
  def get(self, type: Type[URLBlockList]) -> DataSequence[URLBlockListInfo]:
504
649
  ...
@@ -515,6 +660,14 @@ class PolicyListsAPI:
515
660
  def get(self, type: Type[ZoneList]) -> DataSequence[ZoneListInfo]:
516
661
  ...
517
662
 
663
+ @overload
664
+ def get(self, type: Type[ScalableGroupTagList]) -> DataSequence[ScalableGroupTagListInfo]:
665
+ ...
666
+
667
+ @overload
668
+ def get(self, type: Type[IdentityList]) -> DataSequence[IdentityListInfo]:
669
+ ...
670
+
518
671
  # get by id
519
672
 
520
673
  @overload
@@ -553,6 +706,14 @@ class PolicyListsAPI:
553
706
  def get(self, type: Type[ExpandedCommunityList], id: UUID) -> ExpandedCommunityListInfo:
554
707
  ...
555
708
 
709
+ @overload
710
+ def get(self, type: Type[ExtendedCommunityList], id: UUID) -> ExtendedCommunityListInfo:
711
+ ...
712
+
713
+ @overload
714
+ def get(self, type: Type[FaxProtocolList], id: UUID) -> FaxProtocolListInfo:
715
+ ...
716
+
556
717
  @overload
557
718
  def get(self, type: Type[FQDNList], id: UUID) -> FQDNListInfo:
558
719
  ...
@@ -577,10 +738,18 @@ class PolicyListsAPI:
577
738
  def get(self, type: Type[LocalDomainList], id: UUID) -> LocalDomainListInfo:
578
739
  ...
579
740
 
741
+ @overload
742
+ def get(self, type: Type[MediaProfileList], id: UUID) -> MediaProfileListInfo:
743
+ ...
744
+
580
745
  @overload
581
746
  def get(self, type: Type[MirrorList], id: UUID) -> MirrorListInfo:
582
747
  ...
583
748
 
749
+ @overload
750
+ def get(self, type: Type[ModemPassThroughList], id: UUID) -> ModemPassThroughListInfo:
751
+ ...
752
+
584
753
  @overload
585
754
  def get(self, type: Type[PolicerList], id: UUID) -> PolicerListInfo:
586
755
  ...
@@ -613,10 +782,34 @@ class PolicyListsAPI:
613
782
  def get(self, type: Type[SLAClassList], id: UUID) -> SLAClassListInfo:
614
783
  ...
615
784
 
785
+ @overload
786
+ def get(self, type: Type[SupervisoryDisconnectList], id: UUID) -> SupervisoryDisconnectListInfo:
787
+ ...
788
+
789
+ @overload
790
+ def get(self, type: Type[ThreatGridApiKeyList], id: UUID) -> ThreatGridApiKeyListInfo:
791
+ ...
792
+
616
793
  @overload
617
794
  def get(self, type: Type[TLOCList], id: UUID) -> TLOCListInfo:
618
795
  ...
619
796
 
797
+ @overload
798
+ def get(self, type: Type[TranslationProfileList], id: UUID) -> TranslationProfileListInfo:
799
+ ...
800
+
801
+ @overload
802
+ def get(self, type: Type[TranslationRulesList], id: UUID) -> TranslationRulesListInfo:
803
+ ...
804
+
805
+ @overload
806
+ def get(self, type: Type[TrunkGroupList], id: UUID) -> TrunkGroupListInfo:
807
+ ...
808
+
809
+ @overload
810
+ def get(self, type: Type[UmbrellaDataList], id: UUID) -> UmbrellaDataListInfo:
811
+ ...
812
+
620
813
  @overload
621
814
  def get(self, type: Type[URLBlockList], id: UUID) -> URLBlockListInfo:
622
815
  ...
@@ -633,12 +826,26 @@ class PolicyListsAPI:
633
826
  def get(self, type: Type[ZoneList], id: UUID) -> ZoneListInfo:
634
827
  ...
635
828
 
829
+ @overload
830
+ def get(self, type: Type[ScalableGroupTagList], id: UUID) -> ScalableGroupTagListInfo:
831
+ ...
832
+
833
+ @overload
834
+ def get(self, type: Type[IdentityList], id: UUID) -> IdentityListInfo:
835
+ ...
836
+
636
837
  def get(self, type: Type[AnyPolicyList], id: Optional[UUID] = None) -> Any:
637
838
  endpoints = self.__get_list_endpoints_instance(type)
638
839
  if id is not None:
639
840
  return endpoints.get_lists_by_id(id=id)
640
841
  return endpoints.get_policy_lists()
641
842
 
843
+ def get_all(self) -> List[AnyPolicyList]:
844
+ infos: List[AnyPolicyList] = []
845
+ for list_type, _ in POLICY_LIST_ENDPOINTS_MAP.items():
846
+ infos.extend(self.get(list_type))
847
+ return infos
848
+
642
849
 
643
850
  class PolicyDefinitionsAPI:
644
851
  def __init__(self, session: ManagerSession):
@@ -662,10 +869,38 @@ class PolicyDefinitionsAPI:
662
869
  endpoints = self.__get_definition_endpoints_instance(type)
663
870
  endpoints.delete_policy_definition(id=id)
664
871
 
872
+ @overload
873
+ def get(self, type: Type[IntrusionPreventionPolicy]) -> DataSequence[PolicyDefinitionInfo]:
874
+ ...
875
+
665
876
  @overload
666
877
  def get(self, type: Type[TrafficDataPolicy]) -> DataSequence[PolicyDefinitionInfo]:
667
878
  ...
668
879
 
880
+ @overload
881
+ def get(self, type: Type[UrlFilteringPolicy]) -> DataSequence[PolicyDefinitionInfo]:
882
+ ...
883
+
884
+ @overload
885
+ def get(self, type: Type[AdvancedInspectionProfilePolicy]) -> DataSequence[PolicyDefinitionInfo]:
886
+ ...
887
+
888
+ @overload
889
+ def get(self, type: Type[AdvancedMalwareProtectionPolicy]) -> DataSequence[PolicyDefinitionInfo]:
890
+ ...
891
+
892
+ @overload
893
+ def get(self, type: Type[CflowdPolicy]) -> DataSequence[PolicyDefinitionInfo]:
894
+ ...
895
+
896
+ @overload
897
+ def get(self, type: Type[DnsSecurityPolicy]) -> DataSequence[PolicyDefinitionInfo]:
898
+ ...
899
+
900
+ @overload
901
+ def get(self, type: Type[RoutePolicy]) -> DataSequence[PolicyDefinitionInfo]:
902
+ ...
903
+
669
904
  @overload
670
905
  def get(self, type: Type[RuleSet]) -> DataSequence[PolicyDefinitionInfo]:
671
906
  ...
@@ -674,6 +909,14 @@ class PolicyDefinitionsAPI:
674
909
  def get(self, type: Type[SecurityGroup]) -> DataSequence[PolicyDefinitionInfo]:
675
910
  ...
676
911
 
912
+ @overload
913
+ def get(self, type: Type[SslDecryptionPolicy]) -> DataSequence[PolicyDefinitionInfo]:
914
+ ...
915
+
916
+ @overload
917
+ def get(self, type: Type[SslDecryptionUtdProfilePolicy]) -> DataSequence[PolicyDefinitionInfo]:
918
+ ...
919
+
677
920
  @overload
678
921
  def get(self, type: Type[ZoneBasedFWPolicy]) -> DataSequence[PolicyDefinitionInfo]:
679
922
  ...
@@ -694,6 +937,10 @@ class PolicyDefinitionsAPI:
694
937
  def get(self, type: Type[VPNMembershipPolicy]) -> DataSequence[PolicyDefinitionInfo]:
695
938
  ...
696
939
 
940
+ @overload
941
+ def get(self, type: Type[VPNQoSMapPolicy]) -> DataSequence[PolicyDefinitionInfo]:
942
+ ...
943
+
697
944
  @overload
698
945
  def get(self, type: Type[HubAndSpokePolicy]) -> DataSequence[PolicyDefinitionInfo]:
699
946
  ...
@@ -718,12 +965,67 @@ class PolicyDefinitionsAPI:
718
965
  def get(self, type: Type[DeviceAccessIPv6Policy]) -> DataSequence[PolicyDefinitionInfo]:
719
966
  ...
720
967
 
968
+ @overload
969
+ def get(self, type: Type[AppRoutePolicy]) -> DataSequence[PolicyDefinitionInfo]:
970
+ ...
971
+
972
+ @overload
973
+ def get(self, type: Type[FxoPortPolicy]) -> DataSequence[PolicyDefinitionInfo]:
974
+ ...
975
+
976
+ @overload
977
+ def get(self, type: Type[FxsPortPolicy]) -> DataSequence[PolicyDefinitionInfo]:
978
+ ...
979
+
980
+ @overload
981
+ def get(self, type: Type[FxsDidPortPolicy]) -> DataSequence[PolicyDefinitionInfo]:
982
+ ...
983
+
984
+ @overload
985
+ def get(self, type: Type[DialPeerPolicy]) -> DataSequence[PolicyDefinitionInfo]:
986
+ ...
987
+
988
+ @overload
989
+ def get(self, type: Type[PriIsdnPortPolicy]) -> DataSequence[PolicyDefinitionInfo]:
990
+ ...
991
+
992
+ @overload
993
+ def get(self, type: Type[SrstPhoneProfilePolicy]) -> DataSequence[PolicyDefinitionInfo]:
994
+ ...
995
+
721
996
  # get by id
997
+ @overload
998
+ def get(self, type: Type[IntrusionPreventionPolicy], id: UUID) -> IntrusionPreventionPolicyGetResponse:
999
+ ...
722
1000
 
723
1001
  @overload
724
1002
  def get(self, type: Type[TrafficDataPolicy], id: UUID) -> TrafficDataPolicyGetResponse:
725
1003
  ...
726
1004
 
1005
+ @overload
1006
+ def get(self, type: Type[UrlFilteringPolicy], id: UUID) -> UrlFilteringPolicyGetResponse:
1007
+ ...
1008
+
1009
+ @overload
1010
+ def get(self, type: Type[AdvancedInspectionProfilePolicy], id: UUID) -> AdvancedInspectionProfilePolicyGetResponse:
1011
+ ...
1012
+
1013
+ @overload
1014
+ def get(self, type: Type[AdvancedMalwareProtectionPolicy], id: UUID) -> AdvancedMalwareProtectionPolicyGetResponse:
1015
+ ...
1016
+
1017
+ @overload
1018
+ def get(self, type: Type[CflowdPolicy], id: UUID) -> CflowdPolicyGetResponse:
1019
+ ...
1020
+
1021
+ @overload
1022
+ def get(self, type: Type[DnsSecurityPolicy], id: UUID) -> DnsSecurityPolicyGetResponse:
1023
+ ...
1024
+
1025
+ @overload
1026
+ def get(self, type: Type[RoutePolicy], id: UUID) -> RoutePolicyGetResponse:
1027
+ ...
1028
+
727
1029
  @overload
728
1030
  def get(self, type: Type[RuleSet], id: UUID) -> RuleSetGetResponse:
729
1031
  ...
@@ -732,6 +1034,14 @@ class PolicyDefinitionsAPI:
732
1034
  def get(self, type: Type[SecurityGroup], id: UUID) -> SecurityGroupGetResponse:
733
1035
  ...
734
1036
 
1037
+ @overload
1038
+ def get(self, type: Type[SslDecryptionPolicy], id: UUID) -> SslDecryptionPolicyGetResponse:
1039
+ ...
1040
+
1041
+ @overload
1042
+ def get(self, type: Type[SslDecryptionUtdProfilePolicy], id: UUID) -> SslDecryptionUtdProfilePolicyGetResponse:
1043
+ ...
1044
+
735
1045
  @overload
736
1046
  def get(self, type: Type[ZoneBasedFWPolicy], id: UUID) -> ZoneBasedFWPolicyGetResponse:
737
1047
  ...
@@ -752,6 +1062,10 @@ class PolicyDefinitionsAPI:
752
1062
  def get(self, type: Type[VPNMembershipPolicy], id: UUID) -> VPNMembershipPolicyGetResponse:
753
1063
  ...
754
1064
 
1065
+ @overload
1066
+ def get(self, type: Type[VPNQoSMapPolicy], id: UUID) -> VPNMembershipPolicyGetResponse:
1067
+ ...
1068
+
755
1069
  @overload
756
1070
  def get(self, type: Type[HubAndSpokePolicy], id: UUID) -> HubAndSpokePolicyGetResponse:
757
1071
  ...
@@ -776,12 +1090,51 @@ class PolicyDefinitionsAPI:
776
1090
  def get(self, type: Type[DeviceAccessIPv6Policy], id: UUID) -> DeviceAccessIPv6PolicyGetResponse:
777
1091
  ...
778
1092
 
1093
+ @overload
1094
+ def get(self, type: Type[AppRoutePolicy], id: UUID) -> AppRoutePolicyGetResponse:
1095
+ ...
1096
+
1097
+ @overload
1098
+ def get(self, type: Type[FxoPortPolicy], id: UUID) -> FxoPortPolicyGetResponse:
1099
+ ...
1100
+
1101
+ @overload
1102
+ def get(self, type: Type[FxsPortPolicy], id: UUID) -> FxsPortPolicyGetResponse:
1103
+ ...
1104
+
1105
+ @overload
1106
+ def get(self, type: Type[FxsDidPortPolicy], id: UUID) -> FxsDidPortPolicyGetResponse:
1107
+ ...
1108
+
1109
+ @overload
1110
+ def get(self, type: Type[DialPeerPolicy], id: UUID) -> DialPeerPolicyGetResponse:
1111
+ ...
1112
+
1113
+ @overload
1114
+ def get(self, type: Type[PriIsdnPortPolicy], id: UUID) -> PriIsdnPortPolicyGetResponse:
1115
+ ...
1116
+
1117
+ @overload
1118
+ def get(self, type: Type[SrstPhoneProfilePolicy], id: UUID) -> SrstPhoneProfilePolicyGetResponse:
1119
+ ...
1120
+
779
1121
  def get(self, type: Type[AnyPolicyDefinition], id: Optional[UUID] = None) -> Any:
780
1122
  endpoints = self.__get_definition_endpoints_instance(type)
781
1123
  if id is not None:
782
1124
  return endpoints.get_policy_definition(id=id)
783
1125
  return endpoints.get_definitions()
784
1126
 
1127
+ def get_all(self) -> List[Tuple[type, PolicyDefinitionInfo]]:
1128
+ all_items: List[Tuple[type, PolicyDefinitionInfo]] = []
1129
+ for definition_type, _ in POLICY_DEFINITION_ENDPOINTS_MAP.items():
1130
+ try:
1131
+ all_items.extend([(definition_type, info) for info in self.get(definition_type)])
1132
+ except ValidationError as e:
1133
+ self._session.logger.error(
1134
+ f"Multiple {definition_type} items discarded because of validation error {e}"
1135
+ )
1136
+ return all_items
1137
+
785
1138
 
786
1139
  class PolicyAPI:
787
1140
  """This is exposing so called 'UX 1.0' API"""
@@ -789,10 +1142,11 @@ class PolicyAPI:
789
1142
  def __init__(self, session: ManagerSession):
790
1143
  self._session = session
791
1144
  self.centralized = CentralizedPolicyAPI(session)
792
- self.localized = LocalizedPolicyAPI(session)
793
- self.security = SecurityPolicyAPI(session)
794
1145
  self.definitions = PolicyDefinitionsAPI(session)
795
1146
  self.lists = PolicyListsAPI(session)
1147
+ self.localized = LocalizedPolicyAPI(session)
1148
+ self.security = SecurityPolicyAPI(session)
1149
+ self.voice = VoicePolicyAPI(session)
796
1150
 
797
1151
  def delete_any(self, _type: Any, id: UUID) -> None:
798
1152
  if issubclass(_type, PolicyListBase):